Cod sursa(job #499659)
Utilizator | Data | 10 noiembrie 2010 16:58:14 | |
---|---|---|---|
Problema | Fractii | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.55 kb |
# include <algorithm>
# include <cstdio>
int V[1000000] ;
int N ;
long long sol ;
int comp ( void ) {
return ++sol ;
}
int main ( void ) {
fscanf ( fopen ( "fractii.in", "r" ) , "%d", &N ) ;
std :: generate_n ( V, N, comp ) ;
sol = 0 ;
for ( int i = 1; i < N; ++i ) {
if ( V[i] == i + 1 ) {
for ( int j = i + 1; j < N; j += i + 1 ) {
V[j] /= i + 1, V[j] *= i ;
}
}
sol += V[i] ;
}
fprintf ( fopen ( "fractii.out", "w" ) , "%lld", sol * 2 + 1 ) ;
}