import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class ilo {
public static long t;
public static int MAX_FIB = 92;
public static long[] fibs = new long[MAX_FIB];
public static void main(String[] args){
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
try {
long t = Long.parseLong(in.readLine());
long[] n = new long[(int)t];
long maxN = n[0];
for(int i = 0; i < t; ++i){
n[i] = Long.parseLong(in.readLine());
}
//find largest fib number
for (int i = 0; i < t; ++i){
if(n[i] >= maxN){
maxN = n[i];
}
}
//calculate fib up to maxN and put it in array
fibs[0] = 0;
fibs[1] = 1;
for(int i = 2; i < MAX_FIB; ++i){
fibs[i] = fibs[i-2] + fibs[i-1];
}
for(int i = 0; i < t; ++i){
boolean breakout = false;
for(int j = 0; j < MAX_FIB; ++j){
for(int k = j; k < MAX_FIB; ++k){
if(n[i] == fibs[j] * fibs[k]){
System.out.println("TAK");
breakout = true;
break;
}
}
if(breakout) break;
}
if(!breakout) {
System.out.println("NIE");
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
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 | import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class ilo { public static long t; public static int MAX_FIB = 92; public static long[] fibs = new long[MAX_FIB]; public static void main(String[] args){ BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); try { long t = Long.parseLong(in.readLine()); long[] n = new long[(int)t]; long maxN = n[0]; for(int i = 0; i < t; ++i){ n[i] = Long.parseLong(in.readLine()); } //find largest fib number for (int i = 0; i < t; ++i){ if(n[i] >= maxN){ maxN = n[i]; } } //calculate fib up to maxN and put it in array fibs[0] = 0; fibs[1] = 1; for(int i = 2; i < MAX_FIB; ++i){ fibs[i] = fibs[i-2] + fibs[i-1]; } for(int i = 0; i < t; ++i){ boolean breakout = false; for(int j = 0; j < MAX_FIB; ++j){ for(int k = j; k < MAX_FIB; ++k){ if(n[i] == fibs[j] * fibs[k]){ System.out.println("TAK"); breakout = true; break; } } if(breakout) break; } if(!breakout) { System.out.println("NIE"); } } } catch (IOException e) { e.printStackTrace(); } } } |
English