Pagini recente » Cod sursa (job #669776) | Cod sursa (job #313686) | Cod sursa (job #2671613) | Cod sursa (job #2159699) | Cod sursa (job #14922)
Cod sursa(job #14922)
var n:longint;
v:array[1..200000] of longint;
a:array[1..500000] of 0..1;
nrf:longint;
f,g:text;
procedure eratostene;
var i,j:integer;
begin
fillchar(a,sizeof(a),1);
for i:=2 to n do
if a[i]=1 then
for j:=2 to n div i do
a[i*j]:=0;
j:=0;
for i:=2 to n do
if a[i]=1 then
begin
inc(j);
v[j]:=i;
end;
end;
function nrv(x:longint):longint;
var nr,i,d,t,p,q:longint;
begin
q:=1;
nr:=1;
while x<>1 do
begin
t:=0; p:=1;
d:=v[q];
while x mod d=0 do
begin
inc(t);
x:=x div d;
p:=p*d;
end;
if t<>0 then
if t=1 then nr:=nr*(d-1)
else
nr:=nr*(p-p div d);
inc(q);
end;
nrv:=nr;
end;
procedure solve;
var i:longint;
begin
nrf:=1;
for i:=2 to n do
nrf:=nrf+2*nrv(i);
writeln(g,nrf);
end;
begin
assign(f,'fractii.in');reset(f);
readln(f,n);
assign(g,'fractii.out');rewrite(g);
eratostene;
solve;
close(g);
end.