Pagini recente » Cod sursa (job #111051) | Cod sursa (job #350456) | Cod sursa (job #2452251) | Cod sursa (job #2036453) | Cod sursa (job #130248)
Cod sursa(job #130248)
#include<stdio.h>
#define N 1000001
char c[N];
int b[90000];
int main()
{
int i,j,k,x,t;
freopen("fractii.in","r",stdin);
freopen("fractii.out","w",stdout);
unsigned long long f=0;
float f1;
c[0]=c[1]=1;
for(i=4; i<N; i+=2)
c[i]=1;
for(i=3; i*i<N; i+=2)
{
if(!c[i])
for(j=i+i+i; j<N; j=j+i+i)
c[j]=1;
}
b[1]=2;
k=1;
for(i=3; i<N; i+=2)
{
if(!c[i])
b[++k]=i;
}
scanf("%d",&x);
for(i=2; i<=x; i++)
{
t=i;
f1=i;
for(j=1; (j<=k)&&(t!=1); j++)
{
if(t%b[j]==0)
{
f1=f1*(1-(float)1/b[j]);
while(t%b[j]==0)
t=t/b[j];
}
}
f=f+(long)f1;
}
f=2*f+1;
printf("%llu\n",f);
return 0;
}