Pagini recente » Cod sursa (job #2631843) | Cod sursa (job #2736767) | Cod sursa (job #3250164) | Cod sursa (job #1356695) | Cod sursa (job #43863)
Cod sursa(job #43863)
#include<stdio.h>
#include<math.h>
long v[1000001],k;
int tot(long n)
{
long i;
long s=1;
s=n;
i=3;
if (n%2==0) s=s-s/2;
else if (v[n]==0) s=s-s/n;
else
while(i<=1000000)
{
if (v[i]==0&&n%i==0) s=s-s/i;
if (i>n) break;
i=i+2;}
return s;}
int main()
{long nr,n,i,sol=0,j;
FILE*f=fopen("fractii.in","r");
FILE*g=fopen("fractii.out","w");
fscanf(f,"%ld",&n);
for (i=2;i<=500000;i++) v[2*i]=1;
i=3;
while (i<=1000)
{if (v[i]==0)
{j=i*i;
while(j<=1000000) {v[j]=1; j=j+2*i;}}
i+=2;}
sol=1;
for (i=2;i<=n;i++) sol+=2*tot(i);
fprintf(g,"%ld",sol);
fclose(f);
fclose(g);
return 0;}