#include <stdio.h>
#define MAX_FIB 45
int fib[MAX_FIB+1];
void init()
{
int f=1;
fib[0]=0;
for (int i=1;i<=MAX_FIB;i++)
{
fib[i]=f;
f+=fib[i-1];
}
}
bool znajdz(int a)
{
for (int i=0;i<=MAX_FIB;i++)
{
if (fib[i]==a) return true;
}
return false;
}
int main()
{
int t,a;
init();
//for (int i=1;i<=MAX_FIB;i++)
//printf("%d\n",fib[i]);
scanf("%d",&t);
for(;t--;)
{
scanf("%d",&a);
if (a==0)
{
printf("TAK\n");
continue;
}
int j=1;
bool s=false;
while(j*j<=a)
{
if(a%j)
{
j++;
continue;
}
if (znajdz(j) && znajdz(a/j))
{
printf("TAK\n");
s=true;
break;
}
j++;
}
if(!s)printf("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 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | #include <stdio.h> #define MAX_FIB 45 int fib[MAX_FIB+1]; void init() { int f=1; fib[0]=0; for (int i=1;i<=MAX_FIB;i++) { fib[i]=f; f+=fib[i-1]; } } bool znajdz(int a) { for (int i=0;i<=MAX_FIB;i++) { if (fib[i]==a) return true; } return false; } int main() { int t,a; init(); //for (int i=1;i<=MAX_FIB;i++) //printf("%d\n",fib[i]); scanf("%d",&t); for(;t--;) { scanf("%d",&a); if (a==0) { printf("TAK\n"); continue; } int j=1; bool s=false; while(j*j<=a) { if(a%j) { j++; continue; } if (znajdz(j) && znajdz(a/j)) { printf("TAK\n"); s=true; break; } j++; } if(!s)printf("NIE\n"); } return 0; } |
English