UVA 11426 - GCD - Extreme (II)

来源:互联网 发布:淘宝指数排行榜 编辑:程序博客网 时间:2024/04/30 08:17
#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;}

原创粉丝点击