Pagini recente » Cod sursa (job #1948778) | Cod sursa (job #2618891) | Cod sursa (job #1468836) | Cod sursa (job #2096303) | Cod sursa (job #2596)
Cod sursa(job #2596)
#include <cstdio>
const int MAXN = 1024000;
int phi[MAXN], not_prime[MAXN];
int main()
{
freopen("fractii.in", "rt", stdin);
freopen("fractii.out", "wt", stdout);
int N;
scanf("%d", &N);
for (int i = 2; i <= N; ++i)
phi[i] = i;
long long res = 0;
for (int i = 2; i <= N; ++i)
{
// daca i este prim
if (!not_prime[i])
{
// pentru toate numerele j care il au ca factor prim pe i,
// reactualizam functia phi(j)
for (int j = i; j <= N; j += i)
{
not_prime[j] = 1;
phi[j] /= i;
phi[j] *= i-1;
}
}
res += phi[i];
}
printf("%lld\n", 1 + (res << 1));
return 0;
}