<Problem>
http://ntucoder.net/Problem/Details/3257
Uses Crt;
Var t,i,n,j,k,dem:longint;
arr,kt1:array[0..100000] of boolean;
Procedure SANG;
var i,j:longint;
begin
fillchar(arr,sizeof(arr),true);
arr[1]:=false; arr[0]:=false;
for i:=2 to trunc(sqrt(100000)) do
if arr[i] then begin
j:=i*i;
while j<=100000 do
begin
arr[j]:=false;
j:=j+i;
end;
end;
end;
Function Phantich(n:longint):longint;
var k,t,d,y,kt,n1,d1,k1:longint;
begin
d:=0; kt:=0; d1:=0; n1:=n; fillchar(kt1,sizeof(kt1),false);
if (n mod 2=0) then begin k:=2; //d:=d*n1 div k;
while (n mod 2=0) do begin n:=n div k; end;
k1:=k;
while k<=n1 do begin
if kt1[k]=false then begin kt1[k]:=true; inc(d); end;
k:=k+k1;
end; end;
k1:=0; k:=0;
if (n mod 3=0) then begin k:=3; //d:=d*n1 div k;
while (n mod k=0) do begin n:=n div k; end;
k1:=k;
while k<=n1 do begin
if kt1[k]=false then begin inc(d); kt1[k]:=true; end;
k:=k+k1;
end;end;
k1:=0; k:=0;
y:=5;t:=2;
while y<=trunc(sqrt(n)) do begin
k:=y; //d:=d*n1 div k;
if (n mod k=0) then begin
while (n mod k=0) do begin inc(d1); n:=n div k; end;
k1:=k;
while (k<=n1) do begin
if kt1[k]=false then begin inc(d); kt1[k]:=true; end;
k:=k+k1
end;end;
y:=y+t; t:=6-t;
end;
if (n>1) then begin
k:=n;
k1:=k;
while (k<=n1) do begin
if kt1[k]=false then begin kt1[k]:=true; inc(d); end;
k:=k+k1;
end;
end;
phantich:=(d);
end;
function kt(x:int64):integer;
var i:longint;
begin
if x<2 then exit(0);
if x=2 then exit(1);
for i:=2 to trunc(sqrt(x)) do
if x mod i=0 then exit(0);
exit(1);
end;
function UCLN(a,b:int64):int64;
var tam:int64;
begin
while b>0 do
begin
tam:=a mod b;
a:=b;
b:=tam;
end;
exit(a);
end;
Begin
SANG;
readln(t);
for i:=1 to t do
begin
readln(n);
//writeln(phantich(n));
if (arr[n-phantich(n)]=true) then writeln(TRUE) else writeln(FALSE);
(*dem:=0;
for j:=1 to n do
begin
if UCLN(j,n)=1 then inc(dem);
end;
if kt(dem)=1 then writeln('TRUE') else writeln('FALSE');*)
end;
readln;
End.