Mai intai trebuie sa te autentifici.
Cod sursa(job #3262912)
Utilizator | Data | 12 decembrie 2024 09:28:42 | |
---|---|---|---|
Problema | Fractii | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.75 kb |
#include<bits/stdc++.h>
using namespace std;
ifstream fcin("fractii.in");
ofstream fcout("fractii.out");
const int N = 1e6 + 5;
int v[N];
int n;
void phi(int n)
{
for (int i = 2; i <= n; i++)
v[i] = i;
for (int i = 2; i <= n; i++)
if (v[i] == i)
for (int j = i; j <= n; j += i)
v[j] = (v[j] / i) * (i - 1);
}
void phiOptim(int n)
{
for (int i = 2; i <= n; i++)
v[i] = i - 1;
for (int i = 2; i <= n; i++)
for (int j = 2 * i; j <= n; j += i)
v[j] -= v[i];
}
int main()
{
long long rasp = 0;
fcin >> n;
phiOptim(n);
for (int i = 2; i <= n; i++)
rasp += v[i];
rasp = 2 * rasp + 1;
fcout << rasp;
return 0;
}