#include <iostream>
using namespace std;
long long pot ( long long int a, int wyk )
{
if ( wyk == 0 ) return 1;
if ( wyk%2 == 0 )
{
long long t = pot( a, wyk / 2);
return t * t;
}
if ( wyk % 2 == 1 )
{
return ( pot ( a, wyk - 1 ) * a );
}
}
int main()
{
long long int a = 0;
long long int b = 1;
long long int n;
long long sw = 0;
cin>>n;
int roz = 1;
while ( n/pot ( 10, roz ) )
{
roz++;
}
roz += 3;
roz %= 19;
//cout<<roz<<endl;
for ( int i = 1; i < pot ( 10, 18 ); i++ )
{
long long c = (a + b) % pot( 10, roz );
long long int d = c;
// cout<<c<<endl;
while ( d% 10 == 0 )
{
d /= 10;
}
a = b;
b = c;
/*if ( d == n )
{
sw = i + 1;
break;
}*/
}
if ( sw )
{
cout<<sw;
}
else
{
cout<<"NIE";
}
return 0;
}
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 53 54 55 56 57 58 59 60 61 62 63 | #include <iostream> using namespace std; long long pot ( long long int a, int wyk ) { if ( wyk == 0 ) return 1; if ( wyk%2 == 0 ) { long long t = pot( a, wyk / 2); return t * t; } if ( wyk % 2 == 1 ) { return ( pot ( a, wyk - 1 ) * a ); } } int main() { long long int a = 0; long long int b = 1; long long int n; long long sw = 0; cin>>n; int roz = 1; while ( n/pot ( 10, roz ) ) { roz++; } roz += 3; roz %= 19; //cout<<roz<<endl; for ( int i = 1; i < pot ( 10, 18 ); i++ ) { long long c = (a + b) % pot( 10, roz ); long long int d = c; // cout<<c<<endl; while ( d% 10 == 0 ) { d /= 10; } a = b; b = c; /*if ( d == n ) { sw = i + 1; break; }*/ } if ( sw ) { cout<<sw; } else { cout<<"NIE"; } return 0; } |
English