Pagini recente » Cod sursa (job #85209) | Cod sursa (job #1327927) | Cod sursa (job #685234) | Cod sursa (job #2206080) | Cod sursa (job #1074404)
#include <iostream>
using namespace std;
int E[1000001],D[1000001],PHI[1000001],a,b,x;
long long rez;
int n,i,j;
int main()
{
cin>>n;
for(i=2;i<=n;i++)
E[i]=1;
for(i=2;i<=n;i++)
if(E[i]==1)
{
PHI[i]=i-1;
D[i]=i;
for(j=i+i;j<=n;j+=i)
{
E[j]=0;
D[j]=i;
}
}
for(i=2;i<=n;i++)
if(E[i]==0)
{
x=i;
a=1;
while (x%D[i]==0)
{
a=a*D[i];
x=x/D[i];
}
b=i/a;
if (b!=1)
PHI[i]=PHI[a]*PHI[b];
else
PHI[i]=a/D[i]*(D[i]-1);
}
PHI[1]=1;
for(i=1;i<=n;i++)
rez+=PHI[i];
cout<<rez*2-1<<'\n';
return 0;
}