Pagini recente » Cod sursa (job #1791046) | Cod sursa (job #1596840) | Cod sursa (job #1506557) | Cod sursa (job #2197850) | Cod sursa (job #1466463)
#include <bits/stdc++.h>
#define pb push_back
#define f first
#define s second
#define pii pair<int, int>
#define mp make_pair
using namespace std;
const string name = "fractii",
in_file = name + ".in",
out_file = name + ".out";
ifstream fin(in_file);
ofstream fout(out_file);
const int MAX = 1e6 + 1;
bitset<MAX> sieve;
int phi[MAX], n;
long long sol = 1;
void create_sieve(int n){
for (int i = 2; i <= n; i++)
phi[i] = i;
for (int i = 2; i <= n; i += 2){
sieve[i] = 1;
phi[i] = phi[i] / 2;
}
for (int i = 3; i <= n; i += 2)
if (!sieve[i])
for (int j = i; j <= n; j += i){
sieve[j] = 1;
phi[j] = phi[j] / i * (i - 1);
}
}
int main(){
fin >> n;
create_sieve(n);
for (int i = 1; i <= n; i++)
sol += 2 * phi[i];
fout << sol;
return 0;
}