Pagini recente » Cod sursa (job #97210) | Cod sursa (job #1439421) | Cod sursa (job #2619551) | merry | Cod sursa (job #1481408)
#include <cstdio>
#include <cmath>
using namespace std;
int vaz[1000100];
int v[1000100];
int main()
{
freopen("fractii.in","r",stdin);
freopen("fractii.out","w",stdout);
long long sol=0;
int n,j,i1=0;
scanf("%d",&n);
for(int i=2;i<=n;i++)
if(vaz[i]==0)
{
v[++i1]=i;
for(long long j=1LL*i*i;j<=n;j+=i) vaz[j]=1;
}
for(int i=2;i<=n;i++)
{
int lim=sqrt(i),s=i,a=i;
for(int j=1;v[j]<=lim && j<=i1;j++)
if(a%v[j]==0)
{
s=(s/v[j])*(v[j]-1);
while(a%v[j]==0) a/=v[j];
}
if(a>1) s=(s/a)*(a-1);
sol=sol+s;
}
sol=sol*2;
sol++;
printf("%lld",sol);
return 0;
}