Pagini recente » Cod sursa (job #2859654) | Cod sursa (job #336961) | Argumentatia | Cod sursa (job #1231912) | Cod sursa (job #3238139)
#include <fstream>
#include <vector>
using namespace std;
int main() {
ifstream cin("fractii.in");
ofstream cout("fractii.out");
int n;
cin >> n;
vector<int> totient(n+1);
for (int i = 1; i <= n; i++) {
totient[i] = i;
}
for (int i = 2; i <= n; i++) {
// daca numarul inca este prim, trecem prin multipli
if (totient[i] == i) {
for (int j = i; j <= n; j += i) {
totient[j] /= i;
totient[j] *= (i-1);
}
}
}
long long ans = 0;
for (int i = 1; i <= n; i++) {
ans += 2 * totient[i];
}
// nu vrem sa numaram 1/1 de doua ori
cout << ans - 1 << '\n';
return 0;
}