Cod sursa(job #191936)

Utilizator 05_YohnE1 La5c01 05_Yohn Data 29 mai 2008 21:02:00
Problema Divizori Primi Scor 0
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.29 kb
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 not((d mod 2=0)or(d mod 3=0)) then
              while aux mod d=0 do begin
                                aux:=aux div d;
                                int:=true;
                                end;
              d:=d+1;
              if int then c:=c+1;
              int:=false;
              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.