Pagini recente » Statistici Toncu Vlad (VladyTvm) | Istoria paginii runda/dorna_reloaded | Cod sursa (job #1108081) | Cod sursa (job #1028940) | Cod sursa (job #2005554)
#include <iostream>
#include <fstream>
#include <unordered_map>
#include <queue>
#include <stack>
#include <vector>
#define ll long long
#define ull unsigned long long
#define pb push_back
using namespace std;
ifstream in("fractii.in");
ofstream out("fractii.out");
const int NMax = 1e6 + 5;
const int inf = 1e9 + 5;
int N;
int prime[NMax],phi[NMax];
bool notPrime[NMax];
int main() {
in>>N;
for (int i=2;i <= N;++i) {
phi[i] = i;
}
for (int i=2;i <= N;i += 2) {
phi[i] -= phi[i]/2;
}
for (int i=3;i <= N;i += 2) {
if (notPrime[i]) {
continue;
}
for (int j=i;j <= N;j += i) {
notPrime[j] = true;
phi[j] -= phi[j]/i;
}
}
ll ans = 0;
for (int i=2;i <= N;++i) {
ans += phi[i];
//out<<i<<' '<<phi[i]<<'\n';
}
out<<ans*2 + 1<<'\n';
in.close();out.close();
return 0;
}