#include<cstdio> int main() { int a, d; bool p=true; scanf("%d", &a); if (a>99&&a<1000) { d = (a-100)%8; if (d==0||d==2) p=false; } if (a>999&&a<10000) { d = (a-1002)%16; if (d==0||d==2||d==4||d==10||d==12) p=false; } if (a>9999) { d=(a-9998)%32; if (d==0 || d==4 || d==6 || d==8 || d==12 || d==14 || d==16 || d==22 || d==24 || d==28 || d==30) p=false; } if(p) { long long n, m, i; n=15; m=10; while(a>=m) { n*=10; m*=10; } int *fib = new int [n]; fib[0]=0; fib[1]=1; for(i=2; i <= n; i++) { fib[i]=(fib[i-1]+fib[i-2])%m; if (fib[i]==a) { printf("%lld", i); break; } } } else printf("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 | #include<cstdio> int main() { int a, d; bool p=true; scanf("%d", &a); if (a>99&&a<1000) { d = (a-100)%8; if (d==0||d==2) p=false; } if (a>999&&a<10000) { d = (a-1002)%16; if (d==0||d==2||d==4||d==10||d==12) p=false; } if (a>9999) { d=(a-9998)%32; if (d==0 || d==4 || d==6 || d==8 || d==12 || d==14 || d==16 || d==22 || d==24 || d==28 || d==30) p=false; } if(p) { long long n, m, i; n=15; m=10; while(a>=m) { n*=10; m*=10; } int *fib = new int [n]; fib[0]=0; fib[1]=1; for(i=2; i <= n; i++) { fib[i]=(fib[i-1]+fib[i-2])%m; if (fib[i]==a) { printf("%lld", i); break; } } } else printf("NIE"); return 0; } |