Cod sursa(job #382538)

Utilizator annonymusCornescu Andrey annonymus Data 13 ianuarie 2010 21:09:48
Problema Fractii Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include<stdio.h>
int st[4], n, sol;

int cmmdc(int a, int b)
{
    while(a!=b)
    {
            if(a>b)
                    a-=b;
            else 
                    b-=a;
    }

    return a;
}

inline int valid(int k)
{
	if(k > 2)
		return 0;

	return 1;
}

inline int solutie(int k) { return (k == 2 && cmmdc(st[1], st[2]) == 1); }

inline void tiparire(int k)
{
	//cout << st[1] << "/" << st[2] << endl;
	sol++;
}

inline void back(int k)
{
	for(int i=1; i <= n; i++)
	{
		st[k] = i;
		if(valid(k))
			if(solutie(k))
				tiparire(k);
			else
				back(k + 1);
	}
}

int main()
{
	FILE *f = fopen("fractii.in", "r");
	FILE *g = fopen("fractii.out", "w");

	fscanf(f, "%d", &n);

	back(1);
	
	fprintf(g, "%d", sol);
}