[PA2014]Iloczyn
题目大意:
询问(n(nle10^9))是否是两个斐波那契数之积。
思路:
({ m fib}(45)<10^9,{ m fib}(46)>10^9),直接暴力即可。
源代码:
#include<cstdio>
#include<cctype>
inline int getint() {
register char ch;
while(!isdigit(ch=getchar()));
register int x=ch^'0';
while(isdigit(ch=getchar())) x=(((x<<2)+x)<<1)+(ch^'0');
return x;
}
const int N=45;
int f[N];
int main() {
f[1]=1;
for(register int i=2;i<N;i++) {
f[i]=f[i-1]+f[i-2];
}
for(register int T=getint();T;T--) {
const int n=getint();
for(register int i=0;i<N;i++) {
for(register int j=0;j<N;j++) {
if(1ll*f[i]*f[j]==n) {
puts("TAK");
goto Next;
}
}
}
puts("NIE");
Next:;
}
return 0;
}