Pagini recente » Cod sursa (job #331034) | Istoria paginii runda/listare_agm_2017 | Cod sursa (job #1225440) | Cod sursa (job #351696) | Cod sursa (job #2324856)
#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
int v[1000002];
int nums[1000002];
int main()
{
freopen("fractii.in", "r", stdin);
freopen("fractii.out", "w", stdout);
int n;
cin >> n;
int sum = n * n;
for(int i = 2; i <= n; ++i)
{
if(v[i] == 0)
{
for(int j = i; j <= n; j += i)
{
++nums[j];
v[j] = 1;
}
v[i] = 0;
}
}
for(int i = 2; i <= n; ++i)
{
if(v[i] == 1 && nums[i] == 1)
continue;
if(nums[i] % 2)
{
sum -= ((n / i) * (n / i));
}
else
{
sum += ((n / i) * (n / i));
}
}
cout << sum;
return 0;
}