Pagini recente » Cod sursa (job #490354) | Cod sursa (job #283297) | Cod sursa (job #445579) | Cod sursa (job #455449) | Cod sursa (job #3273810)
#include <bits/stdc++.h>
using namespace std;
ifstream in("fractii.in");
ofstream out("fractii.out");
int main() {
long long n;
in >> n;
vector<vector<long long>> nonPrimes(n + 1);
for (long long i = 2; i <= n / 2; i++) {
if (nonPrimes[i].empty()) {
for (long long j = 2; j <= n / i; j++) {
nonPrimes[i * j].push_back(i);
}
}
}
long long sol = 1;
for (long long i = 2; i <= n; i++) {
if (nonPrimes[i].empty()) {
sol += (i - 1) * 2;
} else {
long long prod = i;
for (const auto& p: nonPrimes[i]) {
prod = prod * (p - 1) / p;
}
sol += prod * 2;
}
}
out << sol;
return 0;
}