Pagini recente » Cod sursa (job #597851) | Cod sursa (job #1270992) | Cod sursa (job #3123950) | Cod sursa (job #2114169) | Cod sursa (job #1061772)
#include<cstdio>
#include<cmath>
using namespace std;
int n,i,nr,j,v[100000],a[1000000],k,aux,poz,p,put,nrr,pz;
void ciur();
int main()
{
freopen("fractii.in","r",stdin);
freopen("fractii.out","w",stdout);
scanf("%d",&n);
ciur();
k=0;
for(i=2;i<=n;i++)
{
aux=i;
poz=1;
p=1;
while(aux>1)
{
put=0;
while(aux%v[poz]==0)
{
put++;
aux/=v[poz];
}
if(put>0) p*=(v[poz]-1)*pow(v[poz],put-1);
poz++;
}
k+=p;
/* j=pz;
while(1)
{
if(v[j]>i) k++;
else break;
j--;
}*/
}
printf("%d",2*k+1);
return 0;
}
void ciur()
{
int u;
v[1]=2;
nr=1;
for(i=3;i<=1000;i+=2)
{
if(a[i]==0)
for(j=i+i;j<=1000000;j+=i)
a[j]=1;
}
u=0;
for(i=3;i<=1000000;i+=2)
{
if(a[i]==0)
{
nr++;
v[nr]=i;
if(v[nr]>n&&u==0) nrr=v[nr], pz=nr-1, u=1;
}
}
}