让求有多少对
(
x
,
y
)
(x,y)
(x,y) 使得
g
c
d
(
x
,
y
)
=
1
gcd(x,y)=1
gcd(x,y)=1 , 现考虑有多少
x
x
x 与y互质
(
x
<
y
)
(x<y)
(x<y) , 即求
φ
(
y
)
\varphi(y)
φ(y) , 总的:
a
n
s
=
3
+
2
∑
i
=
2
n
φ
(
i
)
ans=3+2\sum_{i=2}^n\varphi(i)
ans=3+2∑i=2nφ(i) ,
3
3
3 个单独拎出来是
(
1
,
0
)
(
0
,
1
)
(
1
,
1
)
(1,0)(0,1)(1,1)
(1,0)(0,1)(1,1)
#include <bits/stdc++.h>
using namespace std;
const int N=1e5+5;
int phi[N],s[N];
void euler(int n)
{
for(int i=1;i<=n;i++) phi[i]=i;
for(int i=2;i<=n;i++)
{
if(phi[i]==i)
{
for(int j=i;j<=n;j+=i)
{
phi[j]=phi[j]/i*(i-1);
}
}
}
for(int i=2;i<=n;i++) s[i]=s[i-1]+phi[i];
}
signed main()
{
ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
euler(1005);
int T;
cin>>T;
int cnt=0;
while(T--)
{
int n;
cin>>n;
cout<<++cnt<<' '<<n<<' '<<3+2*s[n]<<endl;
}
return 0;
}