Cod sursa(job #216880)

Utilizator Bogdan_tmmTirca Bogdan Bogdan_tmm Data 26 octombrie 2008 03:16:31
Problema Fractii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include<iostream>
#include<stdio.h>
FILE *f,*g;
unsigned long  n,nr=1;unsigned long  st[100000000];
long cmmdc(long  a,long  b)
{
	if(!b) return a;
	else
		return cmmdc(b,a%b);		
}
int valid(int p)
{
	unsigned short ok=1;
	if(st[p-1]==st[p])
		ok=0;
	long c;
	c=cmmdc(st[p],st[p-1]);
	if(st[p-1]!=0)
		if(!(st[p]%c)&&!(st[p-1]%c)&&c!=1)
			if(st[p]!=1&&st[p-1]!=1)
			  ok=0;
   
	return ok;
}
void back(int p)
{
	for(unsigned long  pval=1;pval<=n;pval++)
	{
		st[p]=pval;
		if(valid(p))
			if(p==2)
				nr++;
			else
				back(p+1);
	}
}
int main()
{
	f=fopen("fractii.in","r");
	g=fopen("fractii.out","w");
	fscanf(f,"%ld",&n);
	st[0]=0;
	back(1);
	fprintf(g,"%ld",nr);
	return 0;
}