#include <stdio.h> #define MAX_FIB 45 int fib[MAX_FIB+1]; void init() { int f=1; fib[0]=0; for (int i=1;i<=MAX_FIB;i++) { fib[i]=f; f+=fib[i-1]; } } bool znajdz(int a) { for (int i=0;i<=MAX_FIB;i++) { if (fib[i]==a) return true; } return false; } int main() { int t,a; init(); //for (int i=1;i<=MAX_FIB;i++) //printf("%d\n",fib[i]); scanf("%d",&t); for(;t--;) { scanf("%d",&a); if (a==0) { printf("TAK\n"); continue; } int j=1; bool s=false; while(j*j<=a) { if(a%j) { j++; continue; } if (znajdz(j) && znajdz(a/j)) { printf("TAK\n"); s=true; break; } j++; } if(!s)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 55 56 57 58 59 60 | #include <stdio.h> #define MAX_FIB 45 int fib[MAX_FIB+1]; void init() { int f=1; fib[0]=0; for (int i=1;i<=MAX_FIB;i++) { fib[i]=f; f+=fib[i-1]; } } bool znajdz(int a) { for (int i=0;i<=MAX_FIB;i++) { if (fib[i]==a) return true; } return false; } int main() { int t,a; init(); //for (int i=1;i<=MAX_FIB;i++) //printf("%d\n",fib[i]); scanf("%d",&t); for(;t--;) { scanf("%d",&a); if (a==0) { printf("TAK\n"); continue; } int j=1; bool s=false; while(j*j<=a) { if(a%j) { j++; continue; } if (znajdz(j) && znajdz(a/j)) { printf("TAK\n"); s=true; break; } j++; } if(!s)printf("NIE\n"); } return 0; } |