Pagini recente » Cod sursa (job #2673319) | Cod sursa (job #1254224) | Cod sursa (job #435322) | Cod sursa (job #1706159) | Cod sursa (job #245485)
Cod sursa(job #245485)
#include <stdio.h>
int prim(long n) {
if ((n == 0) || (n == 1)) return 0;
if ((n%2 == 0) && (n>2)) return 0;
long i;
for (i=3; i<=(int)(sqrt(n)); i+=2)
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 long a[n+1];
for (i=1; i<=n; i++) {
if (prim(i)) a[i]=i-1;
else a[i]=i;
}
unsigned long long t=0;
while (j*2 <= n) {
if (a[j] == j-1)
for (i=2*j; i<=n; i=i+j)
a[i]=a[i]/j*(j-1);
t=t+2*a[j];
j++;
}
for (i=n/2+1; 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;
}