#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; } |