Cod sursa(job #58597)

Utilizator rayvianPricope Razvan rayvian Data 6 mai 2007 15:18:44
Problema Fractii Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.05 kb
#include <fstream>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
int divizor(int a,int b)
{
  int x1;
  int diviz=1;
  if(a>b)
  {
    for(x1=1; x1<=b; x1++)
    {
      if(a%x1==0 && b%x1==0)
      {
        diviz=x1;
			}
    }
  }
  else 
  {
    for(x1=1; x1<=a; x1++)
    {
      if(a%x1==0 && b%x1==0)
      {
        diviz=x1;
      }
    }
  }
  return diviz;
}
int main()
{
	
  FILE *fdeschis,*f;
  fdeschis=fopen("fractii.out","w");
	f=fopen("fractii.in","r");
	int n;
	fscanf(f,"%d",&n);
	int nr_fractii=1;
	int i;
	int k,j;
	for(i=1; i<=n; i++)
	{
		j=1;
		k=i;
		while(j<k)
		{
			if((j%2!=0 && k%2!=0 )|| (j!=k))
			{
				if(divizor(k,j)==1)
				{
					nr_fractii+=2;
				}

			}
			j++; k--;
		}
	}
	for(i=2; i<=n-1; i++)
	{
		j=n;
		k=i;
		while(j>k)
		{
		 if((j%2!=0 && k%2!=0 )|| (j!=k))
		 {
				if(divizor(k,j)==1)
				{
					nr_fractii+=2;

				}
		 }
			j--;
			k++;
		}
	}
	fprintf(fdeschis,"%d",nr_fractii);
	fclose(fdeschis);
	fclose(f);
  return 0;
}