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