Cod sursa(job #1024539)
Utilizator | Data | 8 noiembrie 2013 20:00:58 | |
---|---|---|---|
Problema | Fractii | Scor | 10 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.51 kb |
#include <fstream>
#include <cmath>
bool cmmdc(unsigned i, unsigned j)
{
if (!i)
return j == 1;
if (!j)
return i == 1;
return cmmdc(j, i%j);
}
unsigned euler(unsigned y, unsigned u)
{
if (y == 1||u == 1)
return 1;
return cmmdc(y, u) + euler(y, u - 1);
}
int main()
{
unsigned x, cate = 0;
std::ifstream fin("fractii.in");
std::ofstream fout("fractii.out");
fin >> x;
fin.close();
for (unsigned i = 1; i <= x;i++)
cate += euler(i,i -1);
fout << cate * 2 - 1;
fout.close();
}