Pagini recente » Borderou de evaluare (job #1221807) | Monitorul de evaluare | Cod sursa (job #129079) | Istoria paginii utilizator/[email protected] | Cod sursa (job #3333652)
#include <iostream>
#include <fstream>
#include <algorithm>
#include <vector>
using namespace std;
ifstream fin("fractii.in");
ofstream fout("fractii.out");
#define MAXN 1000002
int phi[MAXN];
int N;
long long ans;
int main()
{
fin >> N;
phi[0] = 0; phi[1] = 1;
for (int i = 2; i <= N; ++i) {
phi[i] = i - 1;
}
for (int i = 2; i <= N; ++i) {
for (int j = 2 * i; j <= N; j += i) {
phi[j] -= phi[i];
}
}
ans = 1LL;
for (int i = 2; i <= N; ++i) {
ans += 2LL * phi[i];
}
fout << ans;
return 0;
}