const int N = 4e6 + 5;
int t;
int cnt, p[N], phi[N];
bool book[N];
void x_x_oula()
{
phi[1] = 1;
f(i, 2, N)
{
if (!book[i]) { p[cnt++] = i;phi[i] = i - 1; }
for (int j = 0;p[j] <= N / i;++j)
{
book[i*p[j]] = true;
if (i%p[j] == 0)
{
phi[i*p[j]] = phi[i] * p[j];
break;
}
phi[i*p[j]] = phi[i] * (p[j] - 1);
}
}
}
int ans[N];
int main()
{
//cin >> t;
x_x_oula();
int n;
f(d, 1, N)
{
for (int i = 2 * d;i <= N;i += d)
ans[i] += d * phi[i / d];
}
while (cin >> n && n)
{
ll re = 0;
f(i, 2, n)re += ans[i];
cout << re << endl;
}
return 0;
}
UVA - 11426 GCD - Extreme (II)
猜你喜欢
转载自blog.csdn.net/qq_43543086/article/details/104695485
今日推荐
周排行