program zbs;
function IsSimple(p: cardinal): Boolean;
const
base:array[1..54]of byte=(2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251);
var
i, k : cardinal; pff:boolean;
begin
IsSimple := True;
k := Trunc(Sqrt(p));
i:=1; pff:=true;
while i<55 do
begin
if p mod base[i] = 0 then begin
if p<>base[i] then
begin
IsSimple := False; pff:=false;
end;
Break;
end;
inc(i);
end;
if pff=true then
begin
i:=base[i];
while i<k do
begin
if p mod i = 0 then begin
IsSimple := False;
Break;
end;
inc(i,2);
end;
end;
end;
function next(num:cardinal):cardinal;
var
n:cardinal;
begin
n:=num;
if n<2 then begin result:=2; exit; end;
inc(n);
if n or 1 <> n then inc(n);
while true do
begin
if issimple(n) then break;
inc(n,2);
end;
result:=n;
end;
var
f:text;
T,i:word;
p:array[1..1049]of cardinal;
begin
assign(f,'input.txt');
reset(f);
readln(f,T);
for i:=1 to T do
readln(f,p[i]);
close(f);
for i:=1 to T do
begin
p[i]:=next(p[i]);
end;
assign(f,'output.txt');
rewrite(f);
for i:=1 to T do
writeln(f,p[i]);
close(f);
end.