Cod sursa(job #735124)

Utilizator OrionDicu Mihai George Orion Data 15 aprilie 2012 19:11:17
Problema Fractii Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.04 kb
#include<stdio.h>
#define N 1000000
#define M 100000000
struct fr{
	int numarator;
	int numitor;
};
struct fr frac[N];
FILE *fin=fopen("fractii.in", "r");
FILE *fout=fopen("fractii.out", "w");
int n,i,j,nr,x,k,OK;
float v[M],aux;
int cmmdc(int a, int b){
	while (a != b) {
    if (a > b)
      a -= b;
    else 
      b -= a;
  }
  return a;
}

int main()
{
	fscanf(fin, "%d", &n);
	nr=n;
	k=1;
	for (i=1; i<=n; i++)
	{
		
		for (j=1; j<=n; j++)
		{
			frac[j].numarator=i;
			frac[j].numitor=j;
			/*v[k]=(float)frac[j].numarator/frac[j].numitor;
			OK=1;
			for (x=0; x<(k/2); x++)
			{
				aux=(float)frac[j].numarator/frac[j].numitor;
				if(aux==v[x])
					OK=0;
			}	
			k++;	
			*/
			aux=cmmdc(frac[j].numarator, frac[j].numitor);
			if ((frac[j].numarator%2!=0 || frac[j].numitor%2!=0) && frac[j].numarator%frac[j].numitor!=0 && aux==1)
			{
				nr++;
				//fprintf(fout,"%d/%d\n", frac[j].numarator, frac[j].numitor);
			}
		}
	}
	fprintf(fout,"%d", nr);
	fclose(fin);
	fclose(fout);
	return 0;
}