Pagini recente » Cod sursa (job #37237) | Cod sursa (job #2626527) | Cod sursa (job #3159296) | Cod sursa (job #902559) | Cod sursa (job #1380539)
#include <iostream>
#include <fstream>
using namespace std;
bool prim(int x)
{
int y = x / 2;
for (int i = 2; i <= y; i++)
if (x % i == 0)
return false;
return true;
}
int reductibile(int x, int n)
{
if (prim(x))
return n / x;
int y = x / 2;
int r = 0;
int p = 1;
for (int i = 2; i <= y; i++)
if (x % i == 0)
if (prim(i))
{
if (p > 1)
r += (n / i + n % i) / p;
else
{
r += (n / i) / p;
}
p = i;
}
return r;
}
int main(void)
{
int n;
ifstream f("fractii.in", ifstream::in);
ofstream g("fractii.out", ofstream::out);
f >> n;
int raspuns = n;
for (int i = 2; i <= n; i++)
{
raspuns += n - reductibile(i, n);
}
g << raspuns;
f.close();
g.close();
return 0;
}