#include <stdio.h> #include <stdlib.h> int F[50] = {0}; int m; void fib(int n) { F[1]=1; int i; for(i=2; F[i-1]<=n; i++) F[i] = F[i-1] + F[i-2]; m = --i; } int check(int n) { int i=0, j=m-1; while(i<=j) { int k = F[i]*F[j]; if(k == n) return 1; else if(k < n) i++; else j--; } return 0; } int main() { int d, t; scanf("%d", &t); while(t--) { scanf("%d",&d); fib(d); if(check(d)) 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 | #include <stdio.h> #include <stdlib.h> int F[50] = {0}; int m; void fib(int n) { F[1]=1; int i; for(i=2; F[i-1]<=n; i++) F[i] = F[i-1] + F[i-2]; m = --i; } int check(int n) { int i=0, j=m-1; while(i<=j) { int k = F[i]*F[j]; if(k == n) return 1; else if(k < n) i++; else j--; } return 0; } int main() { int d, t; scanf("%d", &t); while(t--) { scanf("%d",&d); fib(d); if(check(d)) printf("TAK\n"); else printf("NIE\n"); } return 0; } |