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
#include<stdio.h>

unsigned int Fib(unsigned int n) {
  int f,f0=0,f1=1,i;
  if (n==0) return 0;
   else if (n==1) return 1;
    else
     for (i=1;i<n;i++) {
        f=f1+f0;
        f0=f1;
        f1=f;
  }
  return f;

}

int main() {
  unsigned int wynik,wynik2,l,t,n;
  char *wyjscie[10];

  scanf("%d",&t);

  for(l=0;l<t;l++) {
    scanf("%d",&n);
    int ok=0;
    int i=1;
    wynik=Fib(1);
       while ((wynik<=n)&&(ok!=1)) {
        int j=1;
        wynik2=Fib(1);
        while ((wynik2<=n)&&(ok!=1)) {
          if (wynik*wynik2==n) ok=1;
           else {
                j++;
                wynik2=Fib(j);
          }
        }
       i++;
       wynik=Fib(i);
       }
  if (ok==1) wyjscie[l]="TAK";
    else wyjscie[l]="NIE";

  }

 for (l=0;l<t;l++){
    printf("%s\n",wyjscie[l]);
 }

  return 0;
}