Pagini recente » Cod sursa (job #315587) | Cod sursa (job #2509721) | Cod sursa (job #2670674) | Cod sursa (job #412407) | Cod sursa (job #222265)
Cod sursa(job #222265)
#include <stdio.h>
#include <stdlib.h>
long n;
int main()
{
long i, j, k;
long nr;
FILE *f;
FILE *g;
f = fopen("fractii.in", "rt");
g = fopen("fractii.out", "wt");
fscanf(f, "%li", &n);
long* v = (long*)malloc((n+1)*sizeof(long));
nr = 0;
for (i=1; i<=n; i++)
{
v[i] = i;
nr+=i;
}
long aux;
for (i=2; i<=n; i++)
{
if (v[i] == i) // i prim
{
k = i;
while (k <= n)
{
aux = v[k]/i;
v[k] = aux * (i-1); //(v[k]/k) * (k-1)
k+=i;
nr -= aux;
}
}
}
fprintf(g, "%li", 2*nr-1);
return 0;
}