设k = y / x,则原问题等价于求多少对(x,y),x与y互质,那么ans=Σ(i=1,n-1)φ(i)
利用欧拉函数的积性:
(1)当i是质数是,φ(i)=i+1。
(2)nm互质是,φ(nm)=φ(n)*φ(m)
var
s:array[1..1000000] of longint;
f:array[1..1000000] of boolean;
i,j,n:longint;
ans:int64;
begin
readln(n);
if n=1thenbegin
writeln(0);
exit;
end;
fillchar(f,sizeof(f),true);
f[1]:=false;
for i:=1to n-1do
s[i]:=i;
for i:=2to n-1doif f[i] thenbegin
j:=0;
repeat
j:=j+i;
s[j]:=s[j] div i*(i-1);
f[j]:=false;
until j+i>n-1end;
for i:=1to n-1do
ans:=ans+s[i];
writeln(ans*2+1);
end.