#include <iostream>
using namespace std;
int *tab;
int ile;
void fibo(int);
bool sprawdz(int);
int main() {
ile=2;
tab=new int[100000000];
tab[0]=0;
tab[1]=1;
int x,t;
cin>>x;
for(int i=0;i<x;i++){
cin>>t;
fibo(t);
if(sprawdz(t))
cout<<"TAK";
else cout<<"NIE";
}
return 0;
}
void fibo(int x){
if(x<ile || x<tab[ile-1]) return;
while(tab[ile-1]<x){
tab[ile]=tab[ile-1]+tab[ile-2];
ile++;
}
}
bool sprawdz(int x){
for(int i=0;i<ile;i++){
for(int k=0;k<ile;k++){
if(tab[i]!=tab[k] && tab[i]*tab[k]==x) return 1;
}
}
return 0;
}
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 | #include <iostream> using namespace std; int *tab; int ile; void fibo(int); bool sprawdz(int); int main() { ile=2; tab=new int[100000000]; tab[0]=0; tab[1]=1; int x,t; cin>>x; for(int i=0;i<x;i++){ cin>>t; fibo(t); if(sprawdz(t)) cout<<"TAK"; else cout<<"NIE"; } return 0; } void fibo(int x){ if(x<ile || x<tab[ile-1]) return; while(tab[ile-1]<x){ tab[ile]=tab[ile-1]+tab[ile-2]; ile++; } } bool sprawdz(int x){ for(int i=0;i<ile;i++){ for(int k=0;k<ile;k++){ if(tab[i]!=tab[k] && tab[i]*tab[k]==x) return 1; } } return 0; } |
English