Pagini recente » Cod sursa (job #1320539) | Cod sursa (job #2523012) | Cod sursa (job #195788) | Cod sursa (job #1552707) | Cod sursa (job #1074405)
#include <fstream>
using namespace std;
ifstream fi("fractii.in");
ofstream fo("fractii.out");
int E[1000001],D[1000001],PHI[1000001],a,b,x;
long long rez;
int n,i,j;
int main()
{
fi>>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];
fo<<rez*2-1<<'\n';
return 0;
}