Pagini recente » Cod sursa (job #3308802) | Cod sursa (job #3335271) | Cod sursa (job #3333280) | Borderou de evaluare (job #1517168) | Cod sursa (job #3329596)
#include <iostream>
using namespace std;
FILE *in = fopen("fractii.in", "r"), *out = fopen("fractii.out", "w");
int n, prim[1000005], phi[1000005], res = 1;
int main()
{
fscanf(in, "%d", &n);
for(int i = 1; i <= n; ++i)
prim[i] = 1;
for(int i = 2; i <= n; ++i)
for(int j = 2*i; j <= n; j += i)
prim[j] = 0;
for(int i = 1; i <= n; ++i)
phi[i] = i;
for(int pi = 2; pi <= n; ++pi){
if(prim[pi]){
for(int j = pi; j <= n; ++j){
if(j % pi == 0){
phi[j] = phi[j] * (pi - 1) / pi;
//printf("- %d %d %d - ", pi, j, phi[j]);
}
}
}
}
for(int i = 2; i <= n; ++i)
res += 2 * phi[i];
fprintf(out, "%d", res);
return 0;
}