题目传送门
dalao又跟我说了一题水题。
看完题,都知道斐波那契几项后就特别大,所以只需要预处理出前面几项就好了。
(大约是45项左右,因为40项的时候就已经大于1个亿了)
#include<iostream>
#include<cmath>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<queue>
#define rep(i,a,n) for (int i=a;i<=n;i++)
#define per(i,a,n) for (int i=a;i>=n;i--)
#define Clear(a,x) memset(a,x,sizeof(a))
#define ll long long
#define INF 2000000000
#define eps 1e-8
using namespace std;
ll read(){
ll x=0,f=1;
char ch=getchar();
while (ch<'0'||ch>'9') f=ch=='-'?-1:f,ch=getchar();
while (ch>='0'&&ch<='9') x=x*10+ch-'0',ch=getchar();
return x*f;
}
const int maxn=50;
ll f[maxn];
int main(){
f[0]=0,f[1]=1;
rep(i,2,45) f[i]=f[i-1]+f[i-2];
int T=read();
while (T--){
ll a=read();
bool flag=0;
rep(i,0,45)
rep(j,0,45)
if (!flag&&f[i]*f[j]==a){
flag=1;
puts("TAK");
}
if (!flag) puts("NIE");
}
return 0;
}