uses crt;
var duyet:array[0..1000000] of boolean;
i:longword;
k:boolean;
function luythua(x,y,p:longword):longword;
var i,a:longword;
begin
a:=1;
for i:=1 to y do
a:=(a*x) mod p;
exit(a mod p);
end;
function fermat(p:longword):boolean;
var i:longword;
begin
for i:=1 to p-1 do
if luythua(i,p-1,p)<>1 then exit(false);
exit(true);
end;
procedure eratos();
var i,j,x:longword;
begin
x:=1000000;
duyet[1]:=false;
for i:=2 to trunc(sqrt(x)) do
if duyet[i]=true then
for j:=0 to (x-i*i) div i do
duyet[i*i+j*i]:=false;
end;
begin
clrscr;
fillchar(duyet,sizeof(duyet),true);
eratos();
for i:=2 to 1000000 do
if duyet[i]<>fermat(i) then writeln(i);
readln;
end.