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

#define count 45
int fib[count] = {0, 1, 2, 3, 5,
8, 13, 21, 34,
55, 89, 144, 233, 377,
610, 987, 1597, 2584, 4181,
6765, 10946, 17711, 28657, 46368,
75025, 121393, 196418, 317811, 514229,
832040, 1346269, 2178309, 3524578, 5702887,
9227465, 14930352, 24157817, 39088169, 63245986,
102334155, 165580141, 267914296, 433494437, 701408733 };

inline bool isIloczyn(int number)
{
        for(int i = count-1; i>=0; --i)
        {
                for(int j = 0; j<count; ++j)
                {
                        if (fib[j]*fib[i] == number)
                                return true;
                }
        }
        return false;

}

int main()
{
        int nr = 0;
        int x;
        scanf("%d", &nr);
        for(int i =0; i<nr; ++i)
        {
                scanf("%d", &x);
                printf("%s\n", isIloczyn(x)?"TAK":"NIE");
        }
        return 0;
}