Pagini recente » Cod sursa (job #846475) | Cod sursa (job #1338852) | Cod sursa (job #466675) | Cod sursa (job #735036) | Cod sursa (job #3134583)
#include <fstream>
using namespace std;
ifstream fin("fractii.in");
ofstream fout("fractii.out");
const int N_MAX = 1e6;
int indEuler[N_MAX + 1];
void Eratosthenes() {
for(int i = 1; i < N_MAX; ++i)
indEuler[i] = i;
for(int d = 2; d <= N_MAX; ++d)
if(indEuler[d] == d)
for(int i = d; i <= N_MAX; i += d)
indEuler[i] = indEuler[i] / d * (d - 1);
}
int main() {
Eratosthenes();
int n;
fin >> n;
long long sum = 0;
for(int i = 1; i <= n; ++i)
sum += indEuler[i];
sum <<= 1;
sum -= indEuler[1];
fout << sum << '\n';
fin.close();
fout.close();
return 0;
}