Pagini recente » Monitorul de evaluare | Cod sursa (job #1426948) | Cod sursa (job #580032) | Cod sursa (job #2827259) | Cod sursa (job #191941)
Cod sursa(job #191941)
program gaju;
type tip=0..7;
tip2=1..100000;
const v:array[1..7]of longint=(2,6,30,210,2310,30030,510510);
var f,g:text;
n,x,aux,d,i:longint;
t:tip2;
k,c:tip;
found,int:boolean;
begin
assign(f,'divprim.in');
assign(g,'divprim.out');
reset(f);
rewrite(g);
readln(f,t);
for i:=1 to t do begin
readln(f,n,k);
if (k>=1)and(n>1) then begin
found:=false;
for x:=n downto v[k] do
if (x mod 2=0)or(x mod 3=0)then begin
aux:=x;
c:=0;
d:=2;
int:=false;
while aux<>1 do begin
if ((d=2)and(d=3))or((d mod 2<>0)and(d mod 3<>0))then begin
while aux mod d=0 do begin
aux:=aux div d;
if not int then begin
int:=true;
c:=c+1;
end;
end;
d:=d+1;
int:=false;
end
else d:=d+1;
if (d>=x div 2)then begin
c:=c+1;
break;
end;
end;
if c=k then begin
found:=true;
writeln(g,x);
break;
end;
end;
if not found then writeln(g,'0');
end
else writeln(g,'0');
end;
close(g);
end.