Pagini recente » Cod sursa (job #1149886) | Cod sursa (job #2460253) | Cod sursa (job #863951) | Cod sursa (job #1515815) | Cod sursa (job #2546444)
#include <cmath>
#include <fstream>
#include <iostream>
using namespace std;
const int NMAX = 1e6 ;
int ind [ NMAX + 5 ] ;
inline void pregen ( int n )
{
int i , j ;
ind [ 0 ] = 1 ;
for ( i = 1 ; i <= n ; ++ i )
ind [ i ] = i ;
ind [ 2 ] = 1 ;
for ( i = 4 ; i <= n ; i += 2 )
ind [ i ] /= 2 ;
for ( i = 3 ; i <= n ; i += 2 )
if ( ind [ i ] == i )
{
-- ind [ i ] ;
for ( j = 2 * i ; j <= n ; j += i )
ind [ j ] = ( ind [ j ] / i ) * ( i - 1 ) ;
}
}
int main()
{
ifstream in ( "fractii.in" ) ;
ofstream out ( "fractii.out" ) ;
int n , i ;
long long ans = 1 ;
in >> n ;
pregen ( n ) ;
for ( i = 2 ; i <= n ; ++ i )
ans = ans + 2 * ind [ i ] ;
out << ans ;
return 0;
}