Cod sursa(job #95842)
var
fi, fo : text;
n, i, j, nf, nfi : longint;
function cmmdc (d, i : longint) : longint;
var
r : longint;
begin
repeat
r := d mod i; d := i; i := r
until r = 0;
cmmdc := d
end;
begin
assign(fi,'fractii.in'); reset(fi);
assign(fo,'fractii.out'); rewrite(fo);
read(fi,n);
nf := 1; // pentru fractia 1/1;
for i := 2 to n do
begin // Determinam numarul de fractii cu numaratorul 1 si numitorul i.
nfi := 0;
for j := 1 to i-1 do
if cmmdc(i,j) = 1 then
inc(nfi);
nf := nf+2*nfi;
end;
write(fo,nf);
close(fi); close(fo);
end.