#include <iostream>
#include <string>
using namespace std;
long long toInt(string a)
{
long long z = a[0]-'0';
for(int i = 1 ; i < a.size() ; i++)
z=z*10+a[i]-'0';
return z;
}
long long pow(long long b)
{
long long a = 10;
for(int i = 1 ; i < b ; i ++)
{
a*=10;
}
return a;
}
int main()
{
register int tab[] = {60,300,1500 , 15000 ,150000,1500000,15000000,150000000};
register string xx;
cin>>xx;
register long long koniec = toInt(xx) ;
register long long a = 0 , b =1 , mod=pow(xx.size());
//cout<<koniec<<" "<<mod;
for(register int i = 2 ; i < tab[xx.size()] ; i++)
{
b += a;
a = b-a;
if((b-koniec)%mod==0)
{
cout<<i;
return 0;
}
}
cout<<"NIE";
}
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 | #include <iostream> #include <string> using namespace std; long long toInt(string a) { long long z = a[0]-'0'; for(int i = 1 ; i < a.size() ; i++) z=z*10+a[i]-'0'; return z; } long long pow(long long b) { long long a = 10; for(int i = 1 ; i < b ; i ++) { a*=10; } return a; } int main() { register int tab[] = {60,300,1500 , 15000 ,150000,1500000,15000000,150000000}; register string xx; cin>>xx; register long long koniec = toInt(xx) ; register long long a = 0 , b =1 , mod=pow(xx.size()); //cout<<koniec<<" "<<mod; for(register int i = 2 ; i < tab[xx.size()] ; i++) { b += a; a = b-a; if((b-koniec)%mod==0) { cout<<i; return 0; } } cout<<"NIE"; } |
English