Cod sursa(job #87373)

Utilizator sanaDascalu Laurentiu sana Data 27 septembrie 2007 01:29:53
Problema Fractii Scor 10
Compilator c Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <stdio.h>


int prim(long int x){
	long int i;
	if (x==2)
		return 1;
	if (x%2==0)
		return 0;
	for (i=3;i*i<=x;i+=2)
		if (x%i==0)
			return 0;
	return 1;
}


long int cmmdc(long int a , long int b){
	while(a!=b){
		if (a>b){
			a-=b;
			continue;
		}
		b-=a;
	}
	return a;
}

int main(){
	long int N,x,i,j;
	int aux;
	FILE *fin,*fout;
	fin=fopen("fractii.in","rt");
	fout=fopen("fractii.out","wt");

	fscanf(fin,"%ld",&N);

	x=1;
	for (i=2;i<=N;i++){
		if (prim(i)==1)
			x+=2*(i-1);
		else {
			aux=0;
			for (j=2;j<=i-1;j++)
				if (cmmdc(i,j)!=1)
						aux++;
			x=x+2*(i-1-aux);
		}
	}

	fprintf(fout,"%ld",x);

	fclose(fout);
	fclose(fin);
	return 0;
}