Cod sursa(job #115174)

Utilizator mlazariLazari Mihai mlazari Data 16 decembrie 2007 11:21:09
Problema Multiplu Scor 10
Compilator fpc Status done
Runda preONI 2008, Runda 2, Clasele 11-12 Marime 1.02 kb
Program Multiplu;
const nmax=300;
var A,B : longint;
    CMMMC,rez : int64;

procedure Citeste;
var Intrare : text;
begin
  assign(Intrare,'multiplu.in');
  reset(Intrare);
  readln(Intrare,A,B);
  close(Intrare);
end;

procedure AflaCMMMC(A,B : longint);
var R,_a,_b : longint;
begin
  if A>B then
   begin
     R:=A;
     A:=B;
     B:=R;
   end;
  _a:=A;
  _b:=B;
  R:=A mod B;
  while R<>0 do
   begin
     A:=B;
     B:=R;
     R:=A mod B;
   end;
  CMMMC:=_a div B*_b;
end;

function NumarCorect(num : int64) : boolean;
var nc : boolean;
begin
  nc:=true;
  while (num<>0) and nc do
   begin
     nc:=num mod 10<2;
     num:=num div 10;
   end;
  NumarCorect:=nc;
end;

procedure Calculeaza;
begin
  AflaCMMMC(A,B);
  rez:=CMMMC;
  while not NumarCorect(rez) do rez:=rez+CMMMC;
end;

procedure Scrie;
var Iesire : text;
begin
  assign(Iesire,'multiplu.out');
  rewrite(Iesire);
  write(Iesire,rez);
  close(Iesire);
end;

begin
  Citeste;
  Calculeaza;
  Scrie;
end.