Pagini recente » Cod sursa (job #1325501) | Cod sursa (job #2472908) | Cod sursa (job #50994) | Cod sursa (job #1610435) | Cod sursa (job #1324622)
#include<cstdio>
using namespace std;
int n,d,x,i,j,v[1000001],f;
char ciur[1000001];
long long c=0;
int main ()
{
freopen("fractii.in","r",stdin);
freopen("fractii.out","w",stdout);
scanf("%d",&n);
for(i=2;i*2<=n;i++)
ciur[i*2]='1';
v[1]=2;
v[2]=3;
i=3;
d=2;
while(i<n)
{
for(j=i;(long long)j*i<=n;j+=2)
ciur[i*j]='1';
i+=2;
while(ciur[i]=='1')
i+=2;
d++;
v[d]=i;
}
for(i=1;i<=n;i++)
{
x=i;
f=i;
for(j=1;j<=d && v[j]<=x;j++)
{
if(x%v[j]==0)
{
f/=v[j];
f=f*(v[j]-1);
}
while(x%v[j]==0)
x/=v[j];
}
c+=f;
}
c*=2;
c--;
printf("%d",c);
return 0;
}