Pagini recente » Cod sursa (job #2251417) | Cod sursa (job #525387) | Cod sursa (job #2818730) | Cod sursa (job #2093699) | Cod sursa (job #115363)
Cod sursa(job #115363)
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 ToNext(var num : int64);
var z : int64;
begin
z:=1;
while num div z>9 do z:=z*10;
while num div z mod 10<2 do z:=z div 10;
if z<CMMMC then num:=num+CMMMC
else num:=num+(10*z-num mod (10*z)) div CMMMC*CMMMC+CMMMC;
end;
procedure Calculeaza;
begin
AflaCMMMC(A,B);
rez:=CMMMC;
while not NumarCorect(rez) do ToNext(rez);
end;
procedure Scrie;
var Iesire : text;
begin
assign(Iesire,'multiplu.out');
rewrite(Iesire);
write(Iesire,rez);
close(Iesire);
end;
begin
Citeste;
Calculeaza;
Scrie;
end.