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