Pagini recente » Cod sursa (job #29444) | Cod sursa (job #1283965) | Cod sursa (job #2440937) | Cod sursa (job #1072435) | Cod sursa (job #3265598)
#include <fstream>
using namespace std;
const int MAXN = 1000001;
int phi[MAXN];
void calculatePhi(int n) {
// Initialize phi array
for (int i = 1; i <= n; i++)
phi[i] = i;
// Calculate Euler's totient for all numbers up to n
for (int i = 2; i <= n; i++) {
if (phi[i] == i) { // i is prime
for (int j = i; j <= n; j += i) {
phi[j] = phi[j] / i * (i - 1);
}
}
}
}
int main() {
ifstream fin("fractii.in");
ofstream fout("fractii.out");
int n;
fin >> n;
calculatePhi(n);
long long sum = 0;
for (int i = 1; i <= n; i++) {
sum += phi[i];
}
fout << sum;
return 0;
}