#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <iostream>
#include <algorithm>
#define ll long long
#define MAXN 1000090
using namespace std;
int su[MAXN / 6], tot;
long long f[MAXN], sum[MAXN];
int main() {
tot = 0;
for (int i = 1; i <= MAXN; i++)
f[i] = i;
for (int i = 2; i <= MAXN; i++)
if (f[i] == i)
for (int j = i; j <= MAXN; j += i)
f[j] = f[j] / i * (i - 1);
sum[1] = 0;
for (int i = 2; i <= MAXN; i++)
sum[i] = sum[i - 1] + f[i];
int n;
while (scanf("%d", &n) != EOF)
{
if (0 == n)
break;
printf("%lld\n", sum[n]);
}
return 0;
}
快速求欧拉函数 poj2478
最新推荐文章于 2022-04-20 16:55:22 发布