#include <cstdio> #include <vector> using namespace std; int main() { vector<char> vc; char cc = ' '; while (cc != '\n') { scanf("%c", &cc); if (cc != '\n') vc.push_back(cc); } long long int w = vc[0] - 48;; for (int i = 1; i < vc.size(); i++) { w *= 10; w += vc[i] - 48; } int len = vc.size(); long long int cykl = 0; long long int mod = 1; for (int i = 0; i < len; i++) mod *= 10; if (len == 1) cykl = 60; else if (len == 2) cykl = 300; else { cykl = 1500; for (int i = 3; i < len; i++) { cykl *= 10; } } if (w == 0) { printf("0"); return 0; } if (w == 1) { printf("1"); return(0); } long long int a = 0; long long int b = 1; long long int c = 1; for (long long int i = 3; i <= cykl; i++) { a = b; b = c; c = a + b; c %= mod; if (c == w) { printf("%lld", i); return(0); } } printf("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 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 | #include <cstdio> #include <vector> using namespace std; int main() { vector<char> vc; char cc = ' '; while (cc != '\n') { scanf("%c", &cc); if (cc != '\n') vc.push_back(cc); } long long int w = vc[0] - 48;; for (int i = 1; i < vc.size(); i++) { w *= 10; w += vc[i] - 48; } int len = vc.size(); long long int cykl = 0; long long int mod = 1; for (int i = 0; i < len; i++) mod *= 10; if (len == 1) cykl = 60; else if (len == 2) cykl = 300; else { cykl = 1500; for (int i = 3; i < len; i++) { cykl *= 10; } } if (w == 0) { printf("0"); return 0; } if (w == 1) { printf("1"); return(0); } long long int a = 0; long long int b = 1; long long int c = 1; for (long long int i = 3; i <= cykl; i++) { a = b; b = c; c = a + b; c %= mod; if (c == w) { printf("%lld", i); return(0); } } printf("NIE"); } |