Cod sursa(job #1024585)

Utilizator alabala1vali smerica alabala1 Data 8 noiembrie 2013 20:35:57
Problema Fractii Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 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 euleri(unsigned y, unsigned u)
{
	if (y == 1 || u == 1)
		return 1;
	return cmmdc(y, u) + euleri(y, u - 1);
}
unsigned eulerp(unsigned y, unsigned u)
{
	if (!u || u == 1)
		return 1;
	return cmmdc(y, u) + eulerp(y, u - 2);
}
int main()
{
	unsigned x, cate = 0;
	std::ifstream f("fractii.in");
	std::ofstream g("fractii.out");
	f >> x;
	f.close();
	for (unsigned i = 1; i <= x;i+=2)
	    cate += euleri(i, i - 1) + eulerp(i + 1, i);
	if (x % 2)
		cate += euleri(x, x - 1);
	g << cate * 2 - 1;
	g.close();
}