fibo

Time limit: 0.02s Memory limit: 1MB Input: fibo.in Output: fibo.out

Maria este pasionată de matematică. Ea este interesată în special elementele şirului Fibonacci şi vrea să studieze proprietăţile elementelor acestui şir. De curând a scris elementele Fibonacci: 1,1,2,3,5,8,13,1, 1, 2, 3, 5, 8, 13, \dots şi a observat că un element, numărul 55, poate fi scris ca sumă de alte două numere Fibonacci ridicate la pătrat, 5=12+225 = 1 ^ 2 + 2 ^ 2, iar alt număr Fibonacci, numărul 144144, poate fi scris ca diferenţă a altor două numere Fibonacci ridicate la pătrat, 144=13252144 = 13 ^ 2 - 5 ^ 2.
Maria a fost încântată de rezultatele pe care le-a obţinut şi ar dori să mai găsească şi alte elemente ale şirului care se pot scrie ca sumă sau ca diferenţă de alte două numere Fibonacci ridicate la pătrat.

Cerinţă

Ajutaţi-o pe Maria, să decidă despre un element Fibonacci oarecare dacă se poate scrie ca sumă sau diferenţă de două numere Fibonacci distincte ridicate la pătrat. Datorită valorilor mari ale numerelor Fibonacci se cere restul împărţirii lor la 4633746337.

Date de intrare

Fişierul de intrare fibo.in conţine un singur număr natural nn, ce reprezintă numărul de ordine al celui de al nn-lea număr Fibonacci (3<n<25 000)(3 \lt n \lt 25 \ 000).

Date de ieşire

În cazul în care problema are soluţie, fişierul de ieşire fibo.out va conţine 55 rânduri:

  • prima linie a fişierului va conţine valoarea 11 sau 00, după cum cel de al nn-lea număr Fibonacci poate fi scris ca sumă, respectiv ca diferenţă a altor două numere Fibonacci ridicate la pătrat.
  • a doua linie a fişierului de ieşire va conţine două numere naturale ii şi j (0<i<j)j \ (0 \lt i \lt j) separate printr-un spaţiu, reprezentând numerele de ordine a celor două elemente Fibonacci cerute în enunţ (fn=fj2±fi2)(f_n = f_j ^ 2 \plusmn f_i ^ 2).
  • a treia linie a fişierului de ieşire va conţine restul împărţirii celui de al ii-lea număr Fibonacci la 4633746337.
  • a patra linie a fişierului de ieşire va conţine restul împărţirii celui de al jj-lea număr Fibonacci la 4633746337.
  • a cincea linie a fişierului de ieşire va conţine restul împărţirii celui de al nn-lea număr Fibonacci la 4633746337.
    În cazul în care problema nu are soluţie, fişierul de ieşire va conţine pe prima sa linie valoarea 1-1.

Restricţii şi precizări

  • 3<n<25 0003 \lt n \lt 25 \ 000
  • Indicii numerelor Fibonacci pornesc de la 11: f1=1,f2=1,f3=2,f_1 = 1, f_2 = 1, f_3 = 2, \dots
  • Pot exista mai multe soluţii, în acest caz se acceptă oricare dintre ele.

Exemplul 1

fibo.in

5

fibo.out

1
1 3
1
2
5

Explicaţie

11 - este vorba de o sumă
se folosesc elementele f1f_1 şi f3f_3
f1mod46337=1f_1 \mod 46337 = 1
f3mod46337=2f_3 \mod 46337 = 2
f5mod46337=5f_5 \mod 46337 = 5
fiindcă f5=f12+f32=12+22=1+4=5f_5 = f_1 ^ 2 + f_3 ^ 2 = 1 ^ 2 + 2 ^ 2 = 1 + 4 = 5

Exemplul 2

fibo.in

5

fibo.out

0
3 4
2
3
5

Explicaţie

00 – este vorba de o diferenţă
se folosesc elementele f3f_3 şi f4f_4
f3mod46337=2f_3 \mod 46337 = 2
f4mod46337=3f_4 \mod 46337 = 3
f5mod46337=5f_5 \mod 46337 = 5
fiindcă f5=f42f32=3222=94=5f_5 = f_4 ^ 2 - f_3 ^ 2 = 3 ^ 2 - 2 ^ 2 = 9 - 4 = 5

Exemplul 3

fibo.in

12

fibo.out

0
5 7
5
13
144

Explicaţie

00 – este vorba de o diferenţă
se folosesc elementele f5f_5 şi f7f_7
f5mod46337=5f_5 \mod 46337 = 5
f7mod46337=13f_7 \mod 46337 = 13
f12mod46337=144f_{12} \mod 46337 = 144
fiindcă f12=f72f52=13252=16925=144f_{12} = f_7 ^ 2 - f_5 ^ 2 = 13 ^ 2 - 5 ^ 2 = 169 - 25 = 144

Log in or sign up to be able to send submissions!