Cod sursa(job #259594)

Utilizator BurcaVladVlad Burca BurcaVlad Data 15 februarie 2009 15:23:00
Problema Fractii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
// infoarena.ro - "FRACTII" - 15.02.2009

#include<stdio.h>

long int nr;

int cmmdc(long int p, long int q)
	 { int x;
	   while (q!=0)
		 { x=p;
		   p=q;
		   q=x%q;
		 }
	   return p;
	 }

int solutie(long int p, long int q, long int n)
	{ if (p>n || q>n)
	     return 0;
	  if (q==1 || p==1)
	     return 1;
	     else
	     if (cmmdc(p,q)!=1)
		 return 0;
	  return 1;
	}

void det(long int p, long int q, long int n)
	{ if (solutie(p,q,n))
	     { nr++;
	       det(p,q+1,n);
	     }
	     else
	     { if (q>=n && p<n)
		  det(p+1,2,n);
		  else
		  if (p<=n && q<n)
		     det(p,q+1,n);
	     }
	}


int main()
{
FILE *f,*g;
f=fopen("fractii.in", "r");
long int n,p,q;
fscanf(f,"%D",&n);
fclose(f);
nr=2*n-1;
det(2,3,n);
g=fopen("fractii.out", "w");
fprintf(g,"%ld",nr);
fclose(g);
return 0;
}