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
47
48
49
50
51
52
#include <iostream>
#include <cstdlib>
using namespace std;

int zera_wiadace(string liczba){
	int akt=0;
	while(akt<liczba.size()){
		if(liczba[akt]=='0') akt++;
		else break;
	}
	return akt;
}

int main(){
	string liczba;
	cin >> liczba;
	unsigned long long ciag=0;
	int liczba_zer=zera_wiadace(liczba);
	unsigned long long akt_rozmiar=1;
	for(int i=liczba.size()-1; i>=liczba_zer; i--){
		char akt=liczba[i];
		ciag+=((int)akt-48)*akt_rozmiar;
		akt_rozmiar*=10;
	}
	unsigned long long pop=1;
	unsigned long long pop2=1;
	unsigned long long k=3;
//	cout << "ciag: " << ciag << endl;
	if(ciag==0) cout << "0" << endl;
	else if(ciag==1) cout << "1" << endl;
	else{
		bool znaleziono=false;
		while(k<10000000){
			if((pop+pop2)%akt_rozmiar==ciag) {
			//	cout << "(pop+pop2)%akt_rozmiar: " << (pop+pop2)%akt_rozmiar << endl;
				cout << k << endl;
				znaleziono=true;
				break;
				}
			unsigned long long akt=pop;
			pop=pop2;
			pop2=(akt+pop2)%akt_rozmiar;
			k++;
		//	cout << "k: " << k << " pop2: "<< pop2 << " ciag: " << ciag  << endl;
		//	system("pause");
			
		}
		//cout << k << " "<< pop2 << endl;
		if(znaleziono==false) cout << "NIE" << endl;	
	} 	

}