URL invalid
Cod sursa(job #2931261)
Utilizator | Data | 30 octombrie 2022 19:03:44 | |
---|---|---|---|
Problema | Fractii | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.99 kb |
#define maxs(a, b) a = (a > b) ? a : b
#define mins(a, b) a = (a < b) ? a : b
#define all(a) a.begin(), a.end()
#define rng(a, i, j) a.begin() + i, a.begin() + j
#define aall(a, n) a + 1, a + 1 + n
#define arng(a, i, j) a + i, a + j
#define pb push_back
#define ins insert
#define sz(a) (int)a.size()
#define r inFile
#define w outFile
#define wd std::cout
#include <fstream>
#include <iostream>
const int NMAX = 1e6;
int phi[1 + NMAX];
void erathosthenes(int n) {
for (int i = 2; i <= n; ++i) {
phi[i] = i;
}
for (int i = 2; i <= n; ++i) {
if (phi[i] != i) {
continue;
}
for (int j = i; j <= n; j += i) {
phi[j] = phi[j] / i * (i - 1);
}
}
}
int main() {
std::ifstream inFile("fractii.in");
std::ofstream outFile("fractii.out");
int n;
r >> n;
erathosthenes(n);
int64_t ans = 0;
for (int i = 2; i <= n; ++i) {
ans += phi[i];
}
ans = 2 * ans + 1;
w << ans << '\n';
return 0;
}