Pagini recente » Cod sursa (job #641905) | Utilizatori inregistrati la FMI No Stress 5 | Borderou de evaluare (job #1662012) | Borderou de evaluare (job #2018712) | Cod sursa (job #2916260)
#include <fstream>
std::ifstream in("fractii.in");
std::ofstream out("fractii.out");
int64_t sieve[1000001], sievetot[1000001];
int main() {
int64_t x;
in >> x;
for (int i = 2; i <= x; i++) sievetot[i] = i;
for (int i = 2; i <= x; i++) {
if (sieve[i]) continue;
for (int j = 2 * i; j <= x; j += i) sieve[j] = 1;
for (int j = i; j <= x; j += i) {
sievetot[j] *= i - 1;
sievetot[j] /= i;
}
}
int64_t answer = 1;
for (int64_t i = 2; i <= x; i++) answer += 2 * sievetot[i];
out << answer;
}