#include <cstdio>
int fib [44] = {1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89,144,233,377,610,987,1597,2584,4181,6765,10946,
17711,28657,46368,75025,121393,196418,317811,514229,832040,1346269,2178309,3524578,5702887,9227465,
14930352,24157817,39088169,63245986,102334155,165580141,267914296,433494437,701408733};
int ret(int n){
for (int k=0; k<44; k++)
if (n%fib[k]==0){
int mm = n/fib[k];
for (int j=0; j<44; j++)
if (fib[j]==mm)
return 1;
}
return 0;
}
int main(void){
int k;
scanf("%d", &k);
while (k--)
{
int dd;
scanf("%d", &dd);
if (ret(dd)) printf("TAK\n");
else printf("NIE\n");
}
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 | #include <cstdio> int fib [44] = {1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89,144,233,377,610,987,1597,2584,4181,6765,10946, 17711,28657,46368,75025,121393,196418,317811,514229,832040,1346269,2178309,3524578,5702887,9227465, 14930352,24157817,39088169,63245986,102334155,165580141,267914296,433494437,701408733}; int ret(int n){ for (int k=0; k<44; k++) if (n%fib[k]==0){ int mm = n/fib[k]; for (int j=0; j<44; j++) if (fib[j]==mm) return 1; } return 0; } int main(void){ int k; scanf("%d", &k); while (k--) { int dd; scanf("%d", &dd); if (ret(dd)) printf("TAK\n"); else printf("NIE\n"); } return 0; } |
English