Pagini recente » Cod sursa (job #1761801) | Cod sursa (job #2078882) | Cod sursa (job #322238) | Cod sursa (job #121239) | Cod sursa (job #2513660)
#include <fstream>
unsigned N;
unsigned phi[1000001];
long long S = 1;
void computeTotient(long n)
{
for (int i = 1; i <= n; ++i)
{
phi[i] = i;
}
for (int p = 2; p <= n; ++p)
{
if (phi[p] == p)
{
phi[p] = p-1;
for (int i = 2 * p; i <= n; i += p)
{
phi[i] = (phi[i] / p) * (p - 1);
}
}
}
}
int main()
{
std::ifstream fisierIN("fractii.in");
fisierIN >> N;
fisierIN.close();
computeTotient(N);
for (unsigned i = 2; i <= N; ++i)
{
S += 2 * phi[i];
}
std::ofstream fisierOUT("fractii.out");
fisierOUT << S;
fisierOUT.close();
return 0;
}