评测记录
代码:
#include<bits/stdc++.h>
using namespace std;
inline long long int read(){
int x=0,f=1;char ch=getchar();
while (ch<'0'||ch>'9'){if (ch=='-') f=-1;ch=getchar();}
while (ch>='0'&&ch<='9'){x=x*10+ch-48;ch=getchar();}
return x*f;
}
long long int f[43]={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};
int main(){
int t;
t=read();
for(int n=0;n<t;n++){
long long int x=read();
bool y=0;
for(int i=0;i<43;i++){
if(x==f[i]){
printf("TAK\n");
y=1;
break;
}
}
if(y){
continue;
}
if(x==0){
printf("TAK\n");
continue;
}
bool o=0;
int i;
for(i=1;f[i]*f[0]<=x&&i<43;i++){
int j;
for(j=1;j<43&&f[i]*f[j]<=x;j++){
if(f[i]*f[j]==x){
o=1;
break;
}
}
if(o){
printf("TAK\n");
break;
}
}
if(!o){
printf("NIE\n");
}
}
return 0;
}