Pagini recente » Cod sursa (job #1357634) | Cod sursa (job #1621613) | Cod sursa (job #2604502) | Cod sursa (job #1588297) | Cod sursa (job #1024201)
#include<fstream>
bool cmmdc(unsigned i, unsigned j)
{
if (!i)
return j == 1;
if (!j)
return i == 1;
return cmmdc(j, i%j);
}
int main()
{
unsigned n, i, nr = 0, a[1000000] = {}, b[1000000]={};
std::ifstream f("fractii.in");
std::ofstream g("fractii.out");
f >> n;
f.close();
for (i = 2; i <= n; i++)
if (!b[i])
for (unsigned j = 2 * i; j <= n; j += i)
b[j] = 1;
for (i = 2; i < n; i++)
{
if (!b[i])
{
nr += 2*(n - i - n / i + 1);
continue;
}
nr += 2;
for (unsigned k = i * 2; k <= n; a[k += i] = 1);
for (unsigned j = i + 2; j <= n; j++)
nr += 2 * (!a[j] && cmmdc(i, j));
for (unsigned k = i * 2; k <= n; a[k += i] = 0);
}
g << 2 * n + nr + 1;
g.close();
}