传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=3713
水题不解释,注意0也是fib的倍数哦,(话说谁能告诉我PA是哪个OI??)
Code:
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
int f[2333];
int T,n=2;
map<int,int>M;
int main(){
f[1]=f[2]=1;M[1]=1;
for(int i=3;;i++){
f[i]=f[i-1]+f[i-2];
if(f[i]<=int(1e9))n++,M[f[i]]=1;
else break;
}cin>>T;
while(T--){
int x,ok=0;
cin>>x;if(x==0){puts("TAK");continue;}
for(int i=2;i<=n;i++)
if(x%f[i]==0&&M[x/f[i]]){
puts("TAK");ok=1;break;
}if(!ok)puts("NIE");
}
return 0;
}