Cod sursa(job #366287)

Utilizator basketbalistu92alexandru catalisan basketbalistu92 Data 21 noiembrie 2009 14:10:39
Problema Divizori Primi Scor 0
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.03 kb
type vector=array[1..7] of longint;

function prim(a:integer):boolean;
var i:integer;
    ok:boolean;
begin
  i:=2;
  ok:=true;
  while (ok)and(i<trunc(sqrt(a))) do begin
    if a mod i=0 then ok:=false
    else inc(i);
  end;
  prim:=ok;
end;

function zii(a,k:longint):integer;
var d,i:integer;
begin
  i:=0;
  if a mod 2=0 then inc(i);
  d:=3;
  while (d<=a div 3)and(i<=k) do
    if prim(d) then
      if a mod d=0 then begin inc(i); inc(d,2);end;
    inc(d,2);
  zii:=i
end;

var k,n,t:longint;
    i,j:longint;
    v:vector;
    ok:boolean;
begin
v[1]:=1;v[2]:=6;v[3]:=30;v[4]:=210;v[5]:=2310;v[6]:=30030;v[7]:=510510;
//assign(input,'divprim.in');reset(input);
//assign(output,'divprim.out');rewrite(output);
//readln(t);
// for j:=1 to t do begin
   readln(n,k);
   write(prim(n));
   ok:=false;
   if n>=v[k] then
     while not ok do
       if zii(n,k)=k then ok:=true  else dec(n);
     if n>=v[k] then writeln(n)
                else writeln(0);
// end;
//close(input);close(output);
end.