Cod sursa(job #1024020)
Utilizator | Data | 8 noiembrie 2013 00:25:33 | |
---|---|---|---|
Problema | Fractii | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.53 kb |
#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, nr = 0, a[1000000];
std::ifstream f("fractii.in");
std::ofstream g("fractii.out");
f >> n;
f.close();
for (unsigned i = 2; i < n; i++)
{
for (unsigned k = 2 * i; k <= n;)a[k += i] = 0;;
for (unsigned j = i + 1; j <= n; j++)
nr += 2 * (a[j] && cmmdc(i, j));
for (unsigned k = 2 * i; k <= n;)a[k += i] = 1;;
}
g << 2 * n + nr - 1;
g.close();
}