Cod sursa(job #344514)

Utilizator bent_larsenSturzu Antonio-Gabriel bent_larsen Data 30 august 2009 13:48:20
Problema Nunta Scor 70
Compilator c Status done
Runda Arhiva de probleme Marime 1.04 kb
#include<stdio.h>

int max(int a,int b)
{
	if(a>b)
		return a;
	return b;
}

int min(int a,int b)
{
	if(a<b)
		return a;
	return b;
}

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

	while(b)
	{
		r=a%b;
		a=b;
		b=r;
	}
	return a;
}


long long int simplifica(int n,int f1,int f2)
{
	int i,j,fmax,fmin,start,start1,i1,x[500],cm;
	long long int p=1;

	fmax=max(f1,f2);
	fmin=min(f1,f2);

	i=fmax+1;
	start=2;
	start1=2;
	if(i==n)
		return n;
	for(i=2;i<=fmin;i++)
		x[i]=i;
	i=fmax+1;
	

	while(i<=n)
	{
		i1=i;
		for(j=2;j<=fmin;j++)
		{
			cm=cmmdc(i1,x[j]);
			if(cm!=1)
			{
				i1/=cm;
				x[j]/=cm;
				if(x[j]==1)
					start1=j+1;
			}
		}
		p*=i1;
		i++;
		start=start1;
	}
	return p;
}
		
int main()
{
	int n,inc=0;
	long long int suma=0;
	FILE *f=fopen("nunta.in","r");
	fscanf(f,"%i",&n);
	fclose(f);


	for(;;)
	{
		n-=2;
		if(n<0)
			break;
		inc++;
		suma+=simplifica(n+inc,inc,n);
	}
	suma++;
	f=fopen("nunta.out","w");
	fprintf(f,"%lli\n",suma);
	fclose(f);
	return 0;
}