Pagini recente » Cod sursa (job #270540) | Cod sursa (job #951958) | Monitorul de evaluare | Istoria paginii runda/pregatire_oni2011_runda1/clasament | Cod sursa (job #1692666)
#include <iostream>
#include <fstream>
#include <algorithm>
#include <vector>
using namespace std;
// prime before i
int pbi[1000001];
int main()
{
ifstream in("fractii.in");
ofstream out("fractii.out");
int n;
in >> n;
for (int i = 1; i <= n; i++) {
pbi[i] = i;
}
for (int i = 2; i <= n; i++) {
if (pbi[i] == i) {
for (int j = i; j <= n; j += i) {
pbi[j] /= i;
pbi[j] *= (i - 1);
}
}
}
int nf = 0;
for (int i = 1; i <= n; i++) {
nf += pbi[i];
}
nf *= 2;
nf += 1;
out << nf << "\n";
in.close();
out.close();
return 0;
}