Cod sursa(job #199321)

Utilizator manuelciosiciManuel R. Ciosici manuelciosici Data 17 iulie 2008 20:58:00
Problema Fractii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <fstream.h>

int cmmdc(long a, long b)
{  long r;
	if(a!=1)
  {while(b)
   {	r=a%b;
      a=b;
      b=r;
   }
   return a;}
   else {
        return 1;
   }
}

int main()
{	long n, p, q;
	unsigned int nr_fractii=0;
   ifstream f("fractii.in");
   ofstream f2("fractii.out");
   // ia numarul
   f>>n;
   /* fractia e de forma p/q, pentru q=1, toate sunt reductibile, deci q porneste de la 2
      daca q e divizibil cu 2, atunci p merge doar pe nre impare, toate fractiile cu nrele pare sunt simplificabile 
   */
   for(q=1;q<=n;q++)
   {
    if(q%2==0)
    {
     nr_fractii++;
     for(p=2;p<=n; p+=2)
     {
      if(cmmdc(p,q)==1)
        nr_fractii++;
     }
    }
    else
    {
          nr_fractii++;
          for(p=2;p<=n; p++)
     			if(cmmdc(p,q)==1)
        			nr_fractii++;
    }
   }
   f2<<nr_fractii;
   return 0;
}