Pagini recente » Cod sursa (job #3271516) | Borderou de evaluare (job #1478051) | Borderou de evaluare (job #117009) | Cod sursa (job #992622) | Cod sursa (job #209608)
Cod sursa(job #209608)
Program Dreptunghiuri;
var rez : longint;
m,n : integer;
procedure Citeste;
var Intrare : text;
begin
assign(Intrare,'dreptunghiuri.in');
reset(Intrare);
readln(Intrare,m,n);
close(Intrare);
end;
procedure Simplifica(a,b : integer; var va,vb : integer);
var min,i : integer;
begin
if b=0 then
begin
va:=1;
vb:=0;
end
else
begin
va:=a;
vb:=b;
if a<b then min:=a else min:=b;
for i:=min downto 2 do
if (va mod i=0) and (vb mod i=0) then
repeat
va:=va div i;
vb:=vb div i;
until (va mod i<>0) or (vb mod i<>0);
end;
end;
procedure Calculeaza;
var dx,dy,qx,qy,rx,ry: integer;
begin
rez:=0;
for dx:=1 to m do
for dy:=0 to n do
begin
Simplifica(dx,dy,qx,qy);
rx:=qx;
ry:=qy;
while (dy+rx<=n) and (dx+ry<=m) do
begin
rez:=rez+(n-dy-rx)*(m-dx-ry);
rx:=rx+qx;
ry:=ry+qy;
end;
end;
end;
procedure Scrie;
var Iesire : text;
begin
assign(Iesire,'dreptunghiuri.out');
rewrite(Iesire);
write(Iesire,rez);
close(Iesire);
end;
begin
Citeste;
Calculeaza;
Scrie; readln;
end.