Pagini recente » Cod sursa (job #1197235) | Cod sursa (job #118467) | Cod sursa (job #477852) | Cod sursa (job #1782080) | Cod sursa (job #264212)
Cod sursa(job #264212)
#include <stdio.h>
int erat[1000001];
int main()
{
int n;
FILE *in = fopen("fractii.in","rt");
FILE *out = fopen("fractii.out","wt");
fscanf(in, "%d", &n);
fclose(in);
double num = 0;
for (int i = 2; i <= n; i++)
{
if (erat[i] == 0)
{
int add = 0;
int nummar = 0;
for (int j = 2 * i; j <= n; j+=i)
{
add++;
if (erat[j] != 0)
{
erat[j] -= nummar;
nummar++;
}
erat[j] += add;
}
}
erat[i]++;
num += i - erat[i];
//fprintf(out, " totien(%d) = %d\n", i, i - erat[i]);
}
num = num * 2 + 1;
fprintf(out, "%.0lf", num);
fclose(out);
return 0;
}