Pagini recente » Cod sursa (job #799170) | Cod sursa (job #3259321) | Cod sursa (job #30402) | Cod sursa (job #1460387) | Cod sursa (job #3265600)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
vector<int> computeTotients(int N) {
vector<int> phi(N + 1);
for (int i = 0; i <= N; i++) {
phi[i] = i;
}
for (int i = 2; i <= N; i++) {
if (phi[i] == i) { // i is a prime number
for (int j = i; j <= N; j += i) {
phi[j] *= (i - 1);
phi[j] /= i;
}
}
}
return phi;
}
int main() {
ifstream in("fractii.in");
ofstream out("fractii.out");
int N;
in >> N;
vector<int> phi = computeTotients(N);
int count = 0;
for (int i = 1; i <= N; i++) {
count += phi[i];
}
out << count << endl;
return 0;
}