Cod sursa(job #214239)

Utilizator darrenRares Buhai darren Data 13 octombrie 2008 15:45:17
Problema Fractii Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include<fstream.h>

void back(long k);
int ok(long k);
long n,x[3],l=0;
long cmmdc(long a,long b);

int main()
{
	ifstream fin("fractii.in");
	ofstream fout("fractii.out");
	fin>>n;
	back(1);
	fout<<l+1;
	fin.close();
	return 0;
}

void back(long k)
{
	for (long i=1;i<=n;i++)
	{
	x[k]=i;
	if (ok(k))
	if (k==2)
	l++;
	else
	back(k+1);
	}
}

int ok(long k)
{
	if (k==1) return 1;
	if (x[2]==x[1]) return 0;
	if (k==2)
	if (cmmdc(x[k],x[k-1])!=1)
	return 0;
	return 1;
}

long cmmdc(long a,long b)   
{   
    long r;   
    while (b!=0)     
    {      
        r=a%b;     
        a=b;     
        b=r;     
    }   
    return a;   
}