求MAXN以内互质的数的对数
欧拉函数值累加
#include <bits/stdc++.h>
using namespace std;
const int N = 50005;
int prime[N];
void solve()
{
prime[1] = 1;
for(int i = 2; i <= N; i++)
{
if(!prime[i])
{
for(int j = i; j <= N; j+=i)
{
if(!prime[j])
prime[j] = j;
prime[j] = prime[j]/i * (i-1);
}
}
}
for(int i = 2; i <= N; i++)
prime[i]+=prime[i-1];
}
int main()
{
solve();
int x;
while(scanf("%d", &x)&&x)
{
printf("%d\n", prime[x]*2-1);
}
}