Cod sursa(job #15147)

Utilizator dryaAdriana Velicu drya Data 10 februarie 2007 22:14:26
Problema Fractii Scor 10
Compilator c Status done
Runda Arhiva de probleme Marime 0.62 kb
#include <stdio.h>

int cmmdc(int a, int b)
{
 int tmp;
  while (b!=0)
  {
   tmp = b;
   b = a % b;
   a = tmp;
  }
  return a;
}

int main() 
{
 long int n,i,j,k,nr=0,tmp,aux;
 FILE * fin = fopen("fractii.in","r");
 FILE * fout = fopen("fractii.out","w");

  fscanf(fin,"%ld",&n);
  tmp = n/2;
  for (i=2; i<=tmp; i++) {
   aux = n/i;
   for (j=1; j<=aux; j++)
    for (k=1; (k<i) && (i*j+k<=n); k++)
     if ((cmmdc(i,i*j+k)==1)) nr++;
  }

  for (i=tmp+1; i<n; i++)
   for (k=i+1; k<=n; k++)
    if ((cmmdc(i,k)==1)) nr++;

  nr = nr*2;
  nr = nr+2*n-1;

  fprintf(fout,"%ld\n",nr);
  fclose(fin);
  fclose(fout);
  return 0;
}