Pagini recente » Cod sursa (job #2848818) | Cod sursa (job #2285196) | Cod sursa (job #2007526) | Cod sursa (job #1294636) | Cod sursa (job #116546)
Cod sursa(job #116546)
type pelem=^elem;
elem=record
info:int64;
next:pelem;
end;
var fi,fo:text;
rest:array[1..1600000000]of byte;
first,last:pelem;
ma:longint;
M,numar,numar1,numar2,rez,rst,a,b,nr:int64;
procedure qin(vl:int64);
var p:pelem;
begin
new(p);
p^.info:=vl;
p^.next:=nil;
if first=nil then
begin
first:=p; last:=first; exit; end;
last^.next:=p;
last:=p;
end;
procedure qout(var vl:int64);
var p:pelem;
begin
vl:=first^.info;
p:=first;
first:=first^.next;
dispose(p);
end;
procedure solv;
begin
while first<>nil do
begin
qout(numar);
numar1:=numar*10;
if (numar1 mod M)=0 then
begin
rez:=numar1;
exit; end;
if rest[numar1 mod M]=0 then
begin
qin(numar1);
rst:=numar1 mod M;
rest[rst]:=1; end;
numar2:=numar*10+1;
if (numar2 mod M=0) then
begin
rez:=numar2;
exit; end;
if rest[numar2 mod M]=0 then
begin
qin(numar2);
rst:=numar2 mod M;
rest[rst]:=1; end;
end;
end;
function ggt(a,b:int64):int64;
begin
while a<>b do
if a>b then a:=a-b
else b:=b-a;
ggt:=a;
end;
function kgv(a,b:int64):int64;
begin
kgv:=a*b div ggt(a,b);
end;
begin
assign(fi,'multiplu.in'); reset(fi);
assign(fo,'multiplu.out'); rewrite(fo);
read(fi,a,b);
M:=kgv(a,b);
ma:=M; nr:=1;
while ma<>0 do
begin
nr:=nr*10;
ma:=ma div 10;
end;
nr:=nr div 10;
qin(nr); rest[1]:=1;
solv;
writeln(fo,rez);
close(fi);
close(fo);
end.