用户输出
67326849456
系统信息
Exited with return code 0
编号 | 题目 | 状态 | 分数 | 总时间 | 内存 | 代码 / 答案文件 | 提交者 | 提交时间 |
---|---|---|---|---|---|---|---|---|
#10088 | #1072. zzy与飞行棋 | Accepted | 100 | 79 ms | 3712 K | C++ / 759 B | zz_ylolita | 2019-07-03 22:24:26 |
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cstdlib>
using namespace std;
#define N 400010
typedef long long LL;
LL phi[N], ans;
bool vis[N];
int tot, n;
int prime[N];
void Euler() {
phi[1] = 1;
for (int i = 2; i <= n; i++) {
if (!vis[i]) {
prime[tot++] = i;
phi[i] = i - 1;
}
for (int j = 0; j < tot && i * prime[j] <= n; j++) {
vis[i * prime[j]] = 1;
if (i % prime[j] == 0) {
phi[i * prime[j]] = phi[i] * prime[j];
break;
} else
phi[i * prime[j]] = phi[i] * (prime[j] - 1);
}
}
}
int main() {
// freopen("6.in","r",stdin);
// freopen("6.out","w",stdout);
scanf("%d", &n);
Euler();
for (int i = 1; i <= n; i++) ans += phi[i];
ans = ans * 6;
printf("%lld\n", ans);
}