#include <cstdio> typedef long long ll; static const ll maxN = 1e9; int main() { ll fib[50]; int maxIx = 0; fib[maxIx] = 0; fib[++maxIx] = 1; while (fib[maxIx] <= maxN) { ++maxIx; fib[maxIx] = fib[maxIx - 1] + fib[maxIx - 2]; } long t; scanf("%ld", &t); for (ll i = 0; i < t; ++i) { long n; scanf("%ld", &n); bool fibfib = n == 0; for (ll a = 1; a <= maxIx; ++a) { for (ll b = 1; b <= maxIx; ++b) { ll fafb = fib[a] * fib[b]; if (fafb == n) { fibfib = true; break; } else if (fafb > n) { break; } } if (fibfib) { break; } } if (fibfib) { 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 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | #include <cstdio> typedef long long ll; static const ll maxN = 1e9; int main() { ll fib[50]; int maxIx = 0; fib[maxIx] = 0; fib[++maxIx] = 1; while (fib[maxIx] <= maxN) { ++maxIx; fib[maxIx] = fib[maxIx - 1] + fib[maxIx - 2]; } long t; scanf("%ld", &t); for (ll i = 0; i < t; ++i) { long n; scanf("%ld", &n); bool fibfib = n == 0; for (ll a = 1; a <= maxIx; ++a) { for (ll b = 1; b <= maxIx; ++b) { ll fafb = fib[a] * fib[b]; if (fafb == n) { fibfib = true; break; } else if (fafb > n) { break; } } if (fibfib) { break; } } if (fibfib) { printf("TAK\n"); } else { printf("NIE\n"); } } return 0; } |