Cod sursa(job #17298)

Utilizator h_istvanHevele Istvan h_istvan Data 15 februarie 2007 17:10:41
Problema Jocul Flip Scor 0
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.49 kb
program cmmdc;
const prim:array[1..40] of byte= (2,3,5,7,11,13,17,19,23,29,31,37,41,
                                 43,47,53,59,61,67,71,73,79,83,89,97,
                                 101,103,107,109,113,127,131,137,139,
                                 149,151,157,163,167,173);
var ao,bo:array[1..40] of byte;
    i,j:byte;
    lk,a,b,e:word;
    f:text;

function lnko(a,b:word):word;
begin
     for i:=1 to 40 do
     begin
          while(a mod prim[i] = 0) do
          begin
               a:=a div prim[i];
               inc(ao[i]);
          end;
     end;
     for i:=1 to 40 do
     begin
          while(b mod prim[i] = 0) do
          begin
               b:=b div prim[i];
               inc(bo[i]);
          end;
     end;
     lk:=1;
     for i:=1 to 40 do
     begin
          if(ao[i] <> 0) and (bo[i] <> 0) then
          begin
               if (ao[i]<bo[i]) then
               begin
                    for j:=1 to ao[i] do
                        lk:=lk*prim[i];
               end else
               begin
                    for j:=1 to bo[i] do
                        lk:=lk*prim[i];
               end;
          end;
     end;
     if(a=b) and (a<>1) then
             lk:=lk*a;
     lnko:=lk;
end;

begin
     assign(f,'cmmdc.in');
     reset(f);
     readln(f,a,b);
     close(f);
     assign(f,'cmmdc.out');
     rewrite(f);
     e:=lnko(a,b);
     if(e=1) then write(f,0) else
             write(f,e);
     close(f);
end.