Pagini recente » Cod sursa (job #1340509) | Cod sursa (job #1129274) | Cod sursa (job #1940615) | Cod sursa (job #1743134) | Cod sursa (job #232108)
Cod sursa(job #232108)
#include <stdio.h>
int prim(long n) {
if ((n == 0) || (n == 1)) return 0;
long i;
for (i=2; i<=(int)(sqrt(n)); i++)
if (n%i == 0) return 0;
return 1;
}
int main() {
FILE *f = fopen("fractii.in","r");
long n, i;
fscanf(f,"%ld",&n);
fclose(f);
long j = 2;
long a[n+1];
for (i=1; i<=n; i++) {
if (prim(i)) a[i]=i-1;
else a[i]=i;
}
j=2;
for (i=2*j; i<=n; i=i+j)
a[i]=a[i]/j*(j-1);
j=3;
while (j*2 <= n) {
if (prim(j))
for (i=2*j; i<=n; i=i+j)
a[i]=a[i]/j*(j-1);
j+=2;
}
unsigned long long t=0;
for (i=2; i<=n; i++)
t = t + 2*a[i];
t=t+a[1];
f = fopen("fractii.out","w");
fprintf(f,"%lld",t);
fclose(f);
return 0;
}