Pagini recente » Cod sursa (job #2970254) | Cod sursa (job #929180) | Cod sursa (job #432119) | Cod sursa (job #1515509) | Cod sursa (job #3264255)
#include <fstream>
using namespace std;
const int N = 1e6;
int e[N+1];
int main()
{
ifstream in("fractii.in");
ofstream out("fractii.out");
int n;
in >> n;
///initializam e[i]=i
for (int i = 1; i <= n; i++)
{
e[i] = i;
}
///aplicam strategia ciurului
for (int d = 2; d <= n; d++)
{
if (e[d] == d)///daca d este prim
{
for (int m = d; m <= n; m += d)
{
///d afecteaza e[m] pentru fiecare multiplu al lui d
e[m] = e[m] / d * (d - 1);
}
}
}
long long s = 1;
for (int i = 2; i <= n; i++)
{
s += 2 * e[i];
}
out << s << "\n";
in.close();
out.close();
return 0;
}