Pagini recente » Cod sursa (job #1226857) | Cod sursa (job #1863079) | Rating Dipsan Alexandru Florin (Florianoo) | Cod sursa (job #1776181) | Cod sursa (job #133516)
Cod sursa(job #133516)
var m,d,n,inv1,inv,cif1,cif,i,t,t1,y,x,t2,t3:longint;
f,g:text;
r:integer;
a,b:array[0..32000] of byte;
begin
assign(f,'next.in');reset(f);
assign(g,'next.out');rewrite(g);
cif:=0;
read(f,n,d);
x:=n;
inv:=0;
repeat
inv:=inv*10+x mod 10;
x:=x div 10;
inc(cif);
until x=0;
for i:=1 to cif do begin
a[i]:=inv mod 10;;
end;
t:=0;
for i:=a[0] downto 0 do begin
t:=(t*10+a[i] mod d);
end;
for i:=1 to t do
a[i]:=t;
y:=d;
inv1:=0;
cif1:=0;
repeat
inv1:=inv1*10+y mod 10;
y:=y div 10;
inc(cif1);
until y=0;
for i:=1 to cif1 do begin
b[i]:=inv1 mod 10;
end;
t1:=0;
i:=0;
while (i<=a[0]) or (t>0) do begin
a[i]:=a[i]-b[i]-t1;
if a[i]<0 then t1:=1
else t:=0;
a[i]:=a[i]+t1*10;
i:=i+1;
end;
while (a[0]>0) and (a[a[0]]=0) do begin
a[0]:=a[0]-1;
end;
t2:=0;
for i:=a[0] downto 0 do begin
t2:=(t2*10+a[i] mod d);
end;
t3:=0;
i:=1;
while (i<=a[0]) or(i<=t2) or (t3>0) do begin
t3:=t3+a[i]+t2;
a[i]:=t3 mod 10;
t3:=t3 div 10;
i:=i+1;
end;
a[0]:=i-1;
writeln(g,t3);
close(f);
close(g);
end.