#include <iostream>
using namespace std;
int fib[ 47 + 1 ];
void generuj()
{
fib[ 0 ] = 0;
fib[ 1 ] = 1;
for( int i = 2 ; i < 47 ; ++i )
fib[ i ] = fib[ i - 1 ] + fib[ i - 2 ];
} //generuj
bool fibonacci( int n )
{
long long w = 0;
for( int i = 0 ; i < 47 ; ++i )
{
if( fib[ i ] <= n )
{
for( int j = 0 ; j < 47 ; ++j )
{
w = fib[ i ] * fib[ j ];
if( w == n )
return true;
else if( fib[ j ] > n )
break;
}
}
}
return false;
} //fibonacci
int main()
{
ios_base::sync_with_stdio( 0 );
int t, n;
cin >> t;
generuj();
while( t-- )
{
cin >> n;
if( fibonacci( n ) == true )
cout << "TAK" << endl;
else
cout << "NIE" << endl;
}
return 0;
} //main
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 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | #include <iostream> using namespace std; int fib[ 47 + 1 ]; void generuj() { fib[ 0 ] = 0; fib[ 1 ] = 1; for( int i = 2 ; i < 47 ; ++i ) fib[ i ] = fib[ i - 1 ] + fib[ i - 2 ]; } //generuj bool fibonacci( int n ) { long long w = 0; for( int i = 0 ; i < 47 ; ++i ) { if( fib[ i ] <= n ) { for( int j = 0 ; j < 47 ; ++j ) { w = fib[ i ] * fib[ j ]; if( w == n ) return true; else if( fib[ j ] > n ) break; } } } return false; } //fibonacci int main() { ios_base::sync_with_stdio( 0 ); int t, n; cin >> t; generuj(); while( t-- ) { cin >> n; if( fibonacci( n ) == true ) cout << "TAK" << endl; else cout << "NIE" << endl; } return 0; } //main |
English