Cod sursa(job #57770)
Utilizator | Flaviu Pepelea Pepelea_Flaviu | Data | 2 mai 2007 22:46:15 |
---|---|---|---|
Problema | Divizori Primi | Scor | 100 |
Compilator | fpc | Status | done |
Runda | Arhiva de probleme | Marime | 1.08 kb |
var fi,fo:text;
i,j,n,t,k:longint;
nrdiv,prim:array[0..1000000]of integer;
a:array[0..1000000,0..7]of longint;
begin
assign(fi,'divprim.in'); reset(fi);
assign(fo,'divprim.out'); rewrite(fo);
i:=2;
while i<=1000000 do
begin
if prim[i]=0 then
begin
nrdiv[i]:=1;
j:=2*i;
while j<=1000000 do
begin
prim[j]:=1;
nrdiv[j]:=nrdiv[j]+1;
inc(j,i);
end;
end;
inc(i);
end;
for i:=0 to 7 do
begin
for j:=1 to 1000000 do
begin
if nrdiv[j]=i then a[j,i]:=j
else a[j,i]:=a[j-1,i];
end;
end;
readln(fi,t);
for i:=1 to t do
begin
read(fi,n,k);
writeln(fo,a[n,k]);
end;
close(fi);
close(fo);
end.