Cod sursa(job #2971084)
Utilizator | Camburu Luca AswVwsA | Data | 26 ianuarie 2023 16:12:24 |
---|---|---|---|
Problema | Fractii | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.49 kb |
#include <fstream>
#include <cstring>
using namespace std;
const int NMAX = 1e6;
int mobius[NMAX + 1];
int main()
{
ifstream cin("fractii.in");
ofstream cout("fractii.out");
int i, n;
cin >> n;
mobius[1] = 1;
for (i = 2; i <= n; i++)
{
mobius[i]--;
for (int j = 2 * i; j <= n; j += i)
mobius[j] -= mobius[i];
}
long long ans = 0;
for (i = 1; i <= n; i++)
ans += 1LL * mobius[i] * (n / i) * (n / i);
cout << ans;
}