Cod sursa(job #368300)

Utilizator basketbalistu92alexandru catalisan basketbalistu92 Data 24 noiembrie 2009 16:12:47
Problema Divizori Primi Scor 55
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.61 kb
var a:array[1..1000010] of longint;
    i,j,k,n,t:longint;

begin
assign(input,'divprim.in');reset(input);
assign(output,'divprim.out');rewrite(output);
a[1]:=0;
for i:=2 to 1000 do
  if(a[i]=0) then
    for j:=1 to 1000000 div i do begin
      a[i*j]:=i;
    end;
for i:=1001 to 1000000 do
  if a[i]=0 then a[i]:=i;
for i:=2 to 1000000 do begin
  k:=i; while k mod a[i]=0 do k:=k div a[i];
  a[i]:=1+a[k];
end;
readln(t);
for i:=1 to t do begin
  readln(n,k);
  if k=0 then writeln(1)
  else begin
    while (n>0)and(a[n]<>k) do dec(n);
    writeln(n);
  end;
end;
close(input); close(output);
end.