1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include <stdio.h>
using namespace std;

long long int cyfry;
long long int k_cyfry;
int ile_cyfr = 0;
long long int modulo = 1;
long long int fib1, fib2;

int main()
{
	scanf("%lld", &cyfry);
	
	k_cyfry = cyfry;
	
	while(k_cyfry > 0)
	{
		ile_cyfr++;
		k_cyfry /= 10;
	}
	
	for(int i = 0; i < ile_cyfr; i++) modulo *= 10;
	
	if(cyfry == 0) printf("0\n");
	else
	{
		fib1 = 0;
		fib2 = 1;
	
		for(int k = 2; k <= 20000000; k++)
		{
			fib2 = fib1+fib2;
			fib2 %= modulo;
			fib1 = fib2-fib1;
		
			while(fib1 < 0) fib1 += modulo;
			fib1 %= modulo;

			if(fib2 == cyfry) { printf("%d\n", k); break; }
		
			if(k == 20000000) printf("NIE\n");
		}
	}
	
	return 0;
}