Pagini recente » Cod sursa (job #717873) | Cod sursa (job #6984) | Cod sursa (job #2851547) | Cod sursa (job #2330325) | Cod sursa (job #2464732)
/*#include <iostream>
#include<cstdio>
#include<cmath>
FILE * f=fopen("fractii.in","r");
FILE * g=fopen("fractii.out","w");
using namespace std;
long long int n;
long long int phi[1000007];
int main()
{ long long int t=0,i,j;
fscanf(f,"%lld",&n);
for ( i = 1; i <= n; ++i)
phi[i] = i-1;
for ( i = 2; i <= n; ++i)
for ( j = 2*i; j <= n; j += i)
phi[j] -= phi[i];
for(i=1;i<=n;i++)
t=t+2*phi[i];
fprintf(g,"%lld",t+1);
return 0;
}*/
#include <cstdio>
#include <cmath>
#include<iostream>
FILE * f=fopen("fractii.in","r");
FILE * g=fopen("fractii.out","w");
using namespace std;
long int v[1000001],p,e,y,n,z,i,j,x,nrf;
long long int nr,rad;
int main ()
{
fscanf(f,"%lld",&n);
v[1]=1;
for (i=2;i<=n;i++)
{ x=i;
p=2;
z=1;
rad=sqrt(x);
while (p<=rad && x%p>=1) p++;
if (p>rad) v[i]=i-1;
else {
y=x;
e=0;
while (y%p==0)
{ y/=p;
e++;
z=z*p;
}
z=z/p;
v[x]=v[y]*(p-1)*z;
}}
nr=1;
for (i=2;i<=n;i++)
nr=nr+2*v[i];
fprintf(g,"%lld",nr);
return 0;
}