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
#include <cstdio>
#include <cmath>
int main()
{
	int F[44];
	F[0]=F[1]=1;
	for(int i=2;i<44;i++)
		F[i]=F[i-1]+F[i-2];
	int t;
	scanf("%d",&t);
	for(int i=0;i<t;i++)
	{
		unsigned int p;
		scanf("%u",&p);
		if(p==0)
		{
			printf("TAK\n");
			continue;
		}
		bool a=false;
		int u=sqrt(p);
		for(int k=0;F[k]<=u;k++)
		{
			int left=0;
			int right=44;
			while(left<=right)
			{
				int s=(left+right)/2;
				if(p==F[k]*F[s])
				{
					a=true;
					goto tak;
				}
				if(p<F[k]*F[s])
					right=s-1;
				else
					left=s+1;
			}
		}
		printf("NIE\n");
		continue;
		tak:
			printf("TAK\n");
	}
	getchar();
	return 0;
}