Pagini recente » Cod sursa (job #806685) | Cod sursa (job #1130118) | Cod sursa (job #488306) | Clasament win | Cod sursa (job #17908)
Cod sursa(job #17908)
#include<stdio.h>
#include<string.h>
FILE *f;
long n;
unsigned long s;
long E(long i,char div[1000001])
{ double fi;
fi=i;
long k;
for(k=2;k<=n;k++)
if(div[k]=='1' && i%k==0 && k<=i)
fi*=(1-(float)1/k);
return (long)fi;
}
int main()
{ f=fopen("fractii.in","r");
fscanf(f,"%ld",&n);
fclose(f);
long i=2,k;
char div[1000001];
memset(div,'1',n+1);
while(i<=n)
{if(div[i]=='1')
for(k=2;i*k<=n;k++)
div[i*k]='0';
i++;
}
s=1;
for(i=2;i<=n;i++)
s+=2*E(i,div);
f=fopen("fractii.out","w");
fprintf(f,"%ld",s);
fclose(f);
return 0;
}