Pagini recente » Cod sursa (job #1509912) | Cod sursa (job #418933)
Cod sursa(job #418933)
program fractii;
type vec=array [1..1000000] of longint;
var a,b,c,v:vec;
n,k,i,j:longint;
f,t:text;
function transS(n:longint; c:vec) :int64;
var s:int64;
begin
for i:=2 to n do
s:=s+c[i];
transS:=2*S+1;
end;
begin
assign(f,'fractii.in');
reset(f);
assign(t,'fractii.out');
rewrite(t);
read(f,n);
close(f);
{------------------------}
k:=trunc(sqrt(n));
for i:=2 to k do
for j:=1 to n mod i do
v[i*j]:=i;
for i:=k+1 to n do
if v[i]=0 then v[i]=i;
for i:=2 to n do
begin
a[i]:=v[i];
j:=i div a[i];
while j div a[i]=0 do
a[i]=a[i]*v[i];
b[i]:=i div a[i];
if b[i]=1 then c[i]:=i-i div v[i]
else c[i]:=c[a[i]]*c[b[i]];
end;
{------------------------}
write(t,transS(n,c));
close(t);
end.