#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; } |