Pagini recente » Cod sursa (job #2568395) | Cod sursa (job #2555606) | Cod sursa (job #1080175) | Cod sursa (job #588495) | Cod sursa (job #1838383)
#include <fstream>
using namespace std;
fstream f("fractii.in", ios::in), g("fractii.out", ios::out);
int n, p, vec[1000000];
void Elimina(int), Aduna(int);
int main()
{
f >> n;
p = n * n;
for (int i = 2; i <= n; i++)
{
if (vec[i] == 0)
Elimina(i);
else
if (vec[i] > 1)
Aduna(i);
}
g << p;
return 0;
}
void Elimina(int limita)
{
p -= (n/ limita) * (n/ limita);
for (int i = limita * 2; i <= n; i += limita)
{
vec[i]++;
}
}
void Aduna(int inceput)
{
for (int i = inceput; i <= n; i += inceput)
{
p += vec[inceput] - 1;
}
}