Pagini recente » Cod sursa (job #2650553) | Cod sursa (job #1053773) | Cod sursa (job #2315556) | Cod sursa (job #1529900) | Cod sursa (job #2530783)
#include <bits/stdc++.h>
std::ifstream fin("fractii.in") ;
std::ofstream fout("fractii.out") ;
const int MV = 1e6 ;
long long totient[MV + 5] ;
void pre(long long n) {
for(long long p = 1 ; p <= n ; ++ p) {
totient[p] = p ;
}
for(long long i = 2 ; i <= n ; ++ i) {
if (totient[i] == i) {
totient[i] -- ;
for (long long j = i + i ; j <= n ; j += i) {
totient[j] = totient[j] / i * (i - 1) ;
}
}
}
}
int main () {
long long n ; fin >> n ;
pre(n) ;
long long ans(1) ;
for (long long k = 2 ; k <= n ; ++ k) {
ans += (totient[k] * 2) ;
}
fout << ans ;
}