Cod sursa(job #1024559)

Utilizator alabala1vali smerica alabala1 Data 8 noiembrie 2013 20:12:52
Problema Fractii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 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 euler1(unsigned y, unsigned u)
{
	if (y == 1 || u == 1)
		return 1;
	return cmmdc(y, u) + euler1(y, u - 1);
}
unsigned euler(unsigned y, unsigned u)
{
	if (!u)
		return 1;
	return cmmdc(y, u) + euler(y, u - 2);
}
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++)
		if(!(i%2))cate += euler(i,i -1);
		else  cate += euler1(i, i - 1);
	fout << cate * 2 - 1;
	fout.close();
}