#include <cstdio>
#include <cstring>
#include <vector>
#include <algorithm>
#include <iostream>
#include <string>
#include <vector>
#include <cstdlib>
#include <ctime>
#include <cmath>
#include <bitset>
using namespace std;
typedef long long LL;
typedef unsigned long long ULL;
typedef vector<int> VI;
typedef vector<VI> VVI;
const int maxn = 4000011;
int phi[maxn + 100];
LL sum[maxn + 100];
void init() {
int i, j, k;
for (i = 0; i < maxn; ++i)
phi[i] = i;
for (i = 2; i < maxn; ++i)
if (phi[i] == i)
for (j = i; j < maxn; phi[j] = phi[j] - phi[j] / i, j += i)
;
for (i = 1; i <= maxn; ++i) {
for (j = i, k = 1; j <= maxn; j += i, ++k) {
sum[j] += 1ll * phi[k] * i;
}
}
for (i = 1; i <= maxn; ++i)
sum[i] -= i, sum[i] += sum[i - 1];
}
int main() {
ios::sync_with_stdio(false);
init();
int n;
while (~scanf("%d", &n) && n) {
printf("%lld\n", sum[n]);
}
return 0;
}
UVA 11426 - GCD - Extreme (II)
最新推荐文章于 2023-01-26 22:23:01 发布