Pagini recente » Cod sursa (job #494466) | Cod sursa (job #2948436) | Cod sursa (job #162166) | Cod sursa (job #1369484) | Cod sursa (job #9025)
Cod sursa(job #9025)
Program cel;
Type vector=array[2..1000000] of boolean;
vector1=array[2..1000000] of longint;
var f,g:text;
a:vector;
phi:vector1;
n,i,j,p:longint;
nr:extended;
Begin
Assign(f,'fractii.in');Reset(f);
Assign(g,'fractii.out');Rewrite(g);
Read(f,n);
fillchar(a,sizeof(a),true);
For i:=2 to trunc(sqrt(n)) do
If a[i]=true then Begin
j:=2;
While i*j<=n do
Begin
a[i*j]:=false;
inc(j);
end;
end;
For i:=2 to n do
If a[i]=true then phi[i]:=i-1;
i:=2;
While i<=trunc(sqrt(n)) do
Begin
p:=i;
While i*2<=n do
Begin
phi[i*2]:=((i*2) div p)*phi[p];
a[i*2]:=true;
i:=i*2;
end;
i:=p+1;
end;
For i:=2 to n do
If a[i]=false then Begin
j:=2;
While i mod j<>0 do inc(j);
phi[i]:=phi[j]*phi[i div j];
end;
nr:=0;
For i:=2 to n do nr:=nr+phi[i];
nr:=1+2*nr;
Write(g,nr:0:0);
Close(f);
Close(g);
end.