Cod sursa(job #201042)

Utilizator husanuAndrei Husanu husanu Data 28 iulie 2008 19:45:04
Problema Fractii Scor 0
Compilator c Status done
Runda Arhiva de probleme Marime 0.78 kb

#include <stdio.h>

int n = 0;
int m = 0;

void readData()
{
	FILE* fin;
	fin = fopen( "fractii.in", "r" );
	if ( fin == NULL ) {
		return;
	}
	fscanf( fin, "%d", &n );
	fclose( fin );
}

void writeData()
{
	FILE* fout;
	fout = fopen( "fractii.out", "w" );
	if ( fout == NULL ) {
		return;
	}
	fprintf( fout, "%d", m );
	fclose( fout );
}

int cmmdc( int a, int b )
{ 
	int rest;

	if ( a < b ) {
		rest = a;
		a = b;
		b = rest;
	}

	do { 
		rest = a%b;
		a = b;
		b = rest; 
	} while ( rest != 0 );

	return a;
}

void solve()
{
	m = 1; //pt fractia 1/1

	for ( int i=1; i<n; i++ ) {
		for ( int j=i+1; j<=n; j++ ) {
			if ( cmmdc( i,j ) == 1 ) {
				m += 2;
			}
		}
	}
}

void main()
{
	readData();
	solve();
	writeData();
}