Pagini recente » Cod sursa (job #1984801) | Cod sursa (job #2732367) | Cod sursa (job #649329) | Cod sursa (job #547011) | Cod sursa (job #2932465)
#include <iostream>
#include <fstream>
using namespace std;
const long long maxn = 1e6 + 1;
long long euler[maxn];
void init() {
for (long long i = 1; i < maxn; i++)
euler[i] = i;
for (long long i = 2; i < maxn; i++)
if (euler[i] == i)
for (long long 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 << 2LL*euler[n] - 1LL << '\n';
return 0;
}