Pagini recente » Cod sursa (job #272463) | Cod sursa (job #170383) | Cod sursa (job #1159191) | Cod sursa (job #1749717) | Cod sursa (job #66537)
Cod sursa(job #66537)
#include<stdio.h>
#include<math.h>
/*
typedef struct
{
long x, e;
} factor;
factor v[10];*/
long n, contor, nr, v[1000002], u[1000002];
void eratostene()
{
long i,j;
for(i=2;i<=1000000;i++) v[i]=i;
for(i=2;i<=1000000;i++)
if(u[i]==0)
{
j=2;
v[i]--;
while(i*j<=n)
{
u[i*j]=1;
v[i*j]=v[i*j]-v[i*j]/i;
j++;}
}
} /*
void descomp(long x)
{
int exp, d;
d=2;
nr=0;
while (x!=1)
{
exp=0;
if (x%d==0)
{
nr++;
while (x%d==0)
{
exp++;
x/=d;
}
v[nr].e=exp;
v[nr].x=d;
}
d++;
}
}
long totient(long x)
{
long i, c=1;
for (i=1; i<=nr; i++)
c*=((v[i].x-1)*pow(v[i].x,v[i].e-1));
return c;
}
void ciur(long x)
{
long i;
a[1]=a[2]=1;
for (i=4; i<=x; i+=2)
{
descomp(i);
a[i]=totient(i);
}
for (i=3; i<=x; i+=2)
{
if (a[i]==0)
{
a[i]=i-1;
long j=i*2;
if (a[j]==0)
while (j<n)
{
descomp(j);
a[j]=totient(j);
j+=i;
}
}
}
}
*/
void citire()
{
freopen("fractii.in","r",stdin);
scanf("%ld",&n);
}
int main()
{
citire();
long i;
contor=1;
eratostene();
for (i=2; i<=n; i++)
contor+=v[i];
freopen("fractii.out","w",stdout);
printf("%ld",contor*2-1);
return 0;
}