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
61
62
63
64
65
66
67
68
#include<iostream>
using namespace std;
 

int main()
{ 
	long long fib[65535] ;
 	int liczba = 50 ;
    
    fib[1]=1;
    fib[2]=1;
    
    for(int i=2; i<=liczba; i++)
    {
      fib[i]=fib[i-1]+fib[i-2];
    }
    
    int n;
	cin>>n;
	int tab[n];
	int HIGH[n];
	for(int i=0; i<n; i++){
		cin >> tab[i];
		for(int j=0; j<50; j++){
			if(tab[i] < fib[j])  ////////// < lub <=
			{
				HIGH[i] = j;
				break;
			}
		}
	}
    
    int ANS[n];
    
	for(int i=0; i<n; i++){		
		for(int j=1; j<HIGH[i]; j++){ /// j=1 dzielenie przez 0
			if(tab[i] % fib[j] == 0){
				for(int k=0; k<HIGH[i]; k++){
					if(((tab[i] /  fib[j]) == fib[k] ))
					{
						ANS[i] = 1;
					}
				}
			}
		}
	}
    
    
    
    
	for(int i=0; i<n; i++){
		
		if(ANS[i] == 1){
			
    printf("%s", "TAK");
   printf("\n");
		}
		else{
			
    printf("%s", "NIE");
   printf("\n");
		}
	}
    
  return 0;
}