Pagini recente » Cod sursa (job #595917) | Cod sursa (job #1369433) | Cod sursa (job #2523189) | Cod sursa (job #137700) | Cod sursa (job #32004)
Cod sursa(job #32004)
type matr = array[1..1000000,1..7] of longint;
vect = array[1..1000000] of longint;
data=record vl,k:longint; end;
readd = array[1..100000] of data;
var fi,fo:text;
i,t,k,nmax,j:longint;
ct:longint;
m:matr;
a:readd;
p,pr,ndv:vect;
procedure generare;
var i,j,k:longint;
begin
ct:=1
;
p[1]:=1;
p[2]:=0;
for i:=2 to nmax div 2+1 do
begin
k:=2*i;
while k<=nmax do
begin
p[k]:=1;
k:=k+i;
end;
end;
for i:=1 to nmax do
begin
if p[i]=0 then
begin
pr[ct]:=i;
inc(ct);
end;
end;
dec(ct);
end;
begin
assign(fi,'divprim.in'); reset(fi);
assign(fo,'divprim.out'); rewrite(fo);
readln(fi,T);
for i:=1 to T do
begin
readln(fi,a[i].vl,a[i].k);
if nmax<a[i].vl then nmax:=a[i].vl;
end;
generare;
for i:=1 to ct do
begin
k:=pr[i];
while k<=nmax do
begin
inc(ndv[k]);
inc(k,pr[i]);
end;
end;
for i:=2 to nmax do
for j:=1 to 7 do
begin
if j=ndv[i] then m[i,j]:=i
else m[i,j]:=m[i-1,j];
end;
for i:=1 to T do
writeln(fo,m[a[i].vl,a[i].k]);
close(fo);
end.