Cod sursa(job #325091)

Utilizator lukaisthewolfRaluca Lupu lukaisthewolf Data 18 iunie 2009 21:35:56
Problema Fractii Scor 10
Compilator c Status done
Runda Arhiva de probleme Marime 0.68 kb
#include<stdio.h>
#include<stdlib.h>


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


int nr_fr(int n)
{
	int d,r=0;
	
	for(d=2;d<n;d++)
	{
		if(cmmdc(n,d)==1)
		{
			r++;
		}
	}
	
	return r+1; /* n/1 se numara */
}
			
			
int f_fct(int n,int fct[999999])
{
	if(n==1)
	{
		return 1;
	}
	if(n==2)
	{
		return 3;
	}
	else
	{
		return fct[n-1]+nr_fr(n)*2;
	}
			
}
int main()
{
	int n;
	FILE *f,*g;
	int fct[999999],i;
	
	f=fopen("fractii.in", "r");
	g=fopen("fractii.out", "w");
	
	fscanf(f, "%d", &n);
	
	for(i=0;i<n;i++)
	{
		fct[i]=f_fct(i,fct);
	}
	
	
	fprintf(g, "%d", f_fct(n,fct));
	
	fclose(f);
	fclose(g);
	
	return 0;
}