Pagini recente » Cod sursa (job #2097900) | Cod sursa (job #2833516) | Cod sursa (job #3275841) | Cod sursa (job #1128437) | Cod sursa (job #235978)
Cod sursa(job #235978)
#include <stdio.h>
#include <string.h>
#define NMAX 1000001
FILE *f,*g;
int main()
{
char tag[NMAX];
memset(tag,0,sizeof(tag));
long long s;
long int n,i,j,e,a;
f=fopen("fractii.in","r");
fscanf(f,"%ld",&n);
tag[0]=1;
tag[1]=1;
for(j=4;j<=n;j=j+2) tag[j]=1;
for(i=3;i<=n;i=i+2)
if(tag[i]==0) for(j=i*i;j<=n;j=j+i) tag[j]=1;
s=1;
for(i=2;i<=n;i++)
{
if(tag[i]==0) e=i-1;
else
{a=i;
e=1;
if(a%2==0) { while(a%2==0){a=a/2;e=e*2;}
e=e/2;
}
j=3;
while(a!=1)
{ if(tag[j]==0) if(a%j==0) {while(a%j==0){a=a/j;e=e*j;}
e=e*(j-1)/j;
}
j=j+2;
}
}
s=s+2*e;
}
g=fopen("fractii.out","w");
fprintf(g,"%ld",s);
fclose(f);
fclose(g);
return 0;
}