#include <iostream>
#include <vector>
#include <cmath>
#include <algorithm>
using namespace std;
const int MAXN = 1000000000;
const int SQRT_MAXN = sqrt((double) MAXN) + 1;
vector<int> fib;
int main() {
fib.push_back(0);
fib.push_back(1);
while(fib.back() < MAXN)
fib.push_back( fib.back() + fib[fib.size()-2] );
int t;
cin >> t;
for(int it = 0; it < t; it++) {
int n;
cin >> n;
bool res = false;
for(int i = 1; fib[i] <= SQRT_MAXN && !res; i++)
if(n % fib[i] == 0 && binary_search(fib.begin(), fib.end(), n / fib[i]))
res = true;
if(res)
cout << "TAK\n";
else
cout << "NIE\n";
}
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 | #include <iostream> #include <vector> #include <cmath> #include <algorithm> using namespace std; const int MAXN = 1000000000; const int SQRT_MAXN = sqrt((double) MAXN) + 1; vector<int> fib; int main() { fib.push_back(0); fib.push_back(1); while(fib.back() < MAXN) fib.push_back( fib.back() + fib[fib.size()-2] ); int t; cin >> t; for(int it = 0; it < t; it++) { int n; cin >> n; bool res = false; for(int i = 1; fib[i] <= SQRT_MAXN && !res; i++) if(n % fib[i] == 0 && binary_search(fib.begin(), fib.end(), n / fib[i])) res = true; if(res) cout << "TAK\n"; else cout << "NIE\n"; } return 0; } |
English