Pagini recente » Cod sursa (job #2274198) | Cod sursa (job #842260) | Cod sursa (job #366301) | Cod sursa (job #1726419) | Cod sursa (job #856600)
Cod sursa(job #856600)
#include<cstdio>
#include<cmath>
using namespace std;
bool c[1000000010] ;
int prime [80000] ;
int np = 1 ;
void ciur ( int n ){
int i,j,lim;
lim = sqrt ( double ( n ) );
c[0]=c[1]=1;
for ( i = 4 ; i<=n ;i+=2)
c[i]=1;
for ( i = 3 ; i <= lim ;i+=2 )
if ( c[i] == 0 )
for ( j = i * i ; j <= n ; j += 2*i)
c[j]=1 ;
prime [1]=2;
for ( i = 3 ; i<=n ;i+=2)
if(c[i]==0)
prime[++np]=i;
}
inline long long div ( long long x ) {
int phi = x ;
int i;
for ( i = 1 ; i <= np ; i ++ )
if ( x % prime[i] == 0 )
phi = ( long long ) phi * (prime[i] - 1) / prime[i] ;
return phi;
}
int main(){
freopen("fractii.in","r",stdin);
freopen("fractii.out","w",stdout);
int N ;
scanf("%d" , &N);
ciur ( N );
int phi = div(N);
int sol = 1 ;
for ( int i = 2 ; i<=N ; i++ )
sol += 2 * div(i) ;
printf ("%d" , sol );
return 0;
}