#include <cstdio> #include <cstdlib> #define COUNT 46 void gen_fib(int * tab) { tab[0]=0; tab[1]=1; for (int i=2; i < COUNT; i++) { tab[i]= tab[i-1]+tab[i-2]; } } int inside(int n, int *tab, int c) { for (int i = 0; i < c; i++) if (n==tab[i]) return 1; return 0; } int main(int argc, const char *argv[]) { int t,n,ok, divisor; int fib[50]; gen_fib(fib); scanf("%d", &t); for (int i=0; i < t; i++) { ok=0; scanf("%d", &n); for (int i = 1; i < COUNT; i++) { if (n% fib[i] == 0) { divisor = n/fib[i]; if (inside(divisor, fib, COUNT)) { ok = 1; break; } } } if (ok == 1) 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 50 51 52 53 54 | #include <cstdio> #include <cstdlib> #define COUNT 46 void gen_fib(int * tab) { tab[0]=0; tab[1]=1; for (int i=2; i < COUNT; i++) { tab[i]= tab[i-1]+tab[i-2]; } } int inside(int n, int *tab, int c) { for (int i = 0; i < c; i++) if (n==tab[i]) return 1; return 0; } int main(int argc, const char *argv[]) { int t,n,ok, divisor; int fib[50]; gen_fib(fib); scanf("%d", &t); for (int i=0; i < t; i++) { ok=0; scanf("%d", &n); for (int i = 1; i < COUNT; i++) { if (n% fib[i] == 0) { divisor = n/fib[i]; if (inside(divisor, fib, COUNT)) { ok = 1; break; } } } if (ok == 1) printf("TAK\n"); else printf("NIE\n"); } return 0; } |