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