Cod sursa(job #5323)

Utilizator vanila0406Ionescu Victor vanila0406 Data 11 ianuarie 2007 21:34:29
Problema GFact Scor 15
Compilator fpc Status done
Runda Arhiva de probleme Marime 2 kb
program gfact;
var p,q:longint;
        v:array[1..1000] of longint;
        nr:array[1..1000] of longint;
        v1:array[1..1000] of longint;
        f,g:text;
        k:integer;



procedure iofile;
var d,e:longint;
begin
fillchar(nr,sizeof(nr),0);
        assign(f,'gfact.in');
        reset(f);
        assign(g,'gfact.out');
        rewrite(g);
        readln(f,p,q);
        d:=2;
        k:=0;
        while p<>1 do
                begin
                        e:=0;
                        while p mod d=0 do
                                begin
                                p:=p div d;
                                inc(e);
                                end;
                        if e<>0 then
                                begin
                        inc(k);
                        v[k]:=d;
                        nr[k]:=e*q;
                        inc(d);  end;
                end;
        close(f);
end;




{function ok:boolean;
var i:longint;
begin
        ok:=true;
        for i:=1 to k do
                if v1[i]<nr[i] then
                        begin
                                ok:=false;
                                exit;
                        end;
end;}




procedure prel;
var j,nb:longint;
        x,i,y:longint;
begin
        i:=2;
        repeat
                {for j:=1 to k do
                        begin     }
                j:=k;
                                x:=i;
                                nb:=0;
                                y:=v[j];
                                while x mod y=0 do
                                begin
                                        x:=x div v[j];
                                        inc(nb);
                                end;
                                v1[j]:=v1[j]+nb;
                       { end;}
                inc(i);
        until v1[k]>=nr[k];
        writeln(g,i-1);
        close(g);
end;


begin
        iofile;
        prel;
end.