Pagini recente » Cod sursa (job #2842400) | Cod sursa (job #1247427) | Cod sursa (job #1618454) | Cod sursa (job #720730) | Cod sursa (job #2971076)
#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] = -1;
for (i = 2; i <= n; i++)
if (mobius[i] == -1)
{
for (int j = 2 * i; j <= n; j += i)
if (j % i == 0 and (j / i) % i != 0)
mobius[j] = mobius[i] * mobius[j / i];
else
mobius[j] = 0;
}
long long ans = 0;
for (i = 1; i <= n; i++)
ans += mobius[i] * (n / i) * (n / i);
cout << ans;
}