Pagini recente » Cod sursa (job #1092917) | Cod sursa (job #2157164) | Cod sursa (job #2234903) | Cod sursa (job #1856878) | Cod sursa (job #2932463)
#include <iostream>
#include <fstream>
using namespace std;
const int maxn = 1e6 + 1;
int euler[maxn];
void init() {
for (int i = 1; i < maxn; i++)
euler[i] = i;
for (int i = 2; i < maxn; i++)
if (euler[i] == i)
for (int j = i; j < maxn; j += i)
euler[j] = euler[j]/i*(i - 1);
for (int i = 2; i < maxn; i++)
euler[i] += euler[i - 1];
}
int main() {
init();
ifstream fin("fractii.in");
ofstream fout("fractii.out");
int n;
fin >> n;
fout << 2*euler[n] - 1 << '\n';
return 0;
}