Cod sursa(job #95001)

Utilizator savimSerban Andrei Stan savim Data 26 octombrie 2007 21:33:32
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include <stdio.h>
long gas,c,k,p,nr,a,b;
FILE *f1,*f2;
int main()
{
	f1=fopen("fact.in","r");
	f2=fopen("fact.out","w");
	fscanf(f1,"%ld",&p);
	a=0;b=2000000000;gas=0;
	while (b-a>1)
	{
		c=nr=(a+b)/2;
		k=0;
		while (c>0)
		{
			k=k+c/5;
			c=c/5;
		}
		if (k==p)
		{
			gas=1;
			break;
		}
		else
			if (k<p)
				a=nr;
			else
				b=nr;
	}
	if (gas)
	{
		gas=0;
		while (gas==0 && nr>1)
		{
			gas=1;
			a=nr;
			a--;
			k=0;
			while (a>0)
			{
				k=k+a/5;
				a=a/5;
			}

			if (k==p)
			{
				gas=0;
				nr--;
			}
		}
		fprintf(f2,"%ld",nr);
	}
	else fprintf(f2,"-1");
	return 0;
}