Cod sursa(job #1312817)

Utilizator Tzappy90Mihalache Constantin Tzappy90 Data 9 ianuarie 2015 22:54:53
Problema Factorial Scor 45
Compilator c Status done
Runda Arhiva de probleme Marime 0.57 kb
#include <stdio.h>
long p,l=1,r = 400000015/5,m,test;
long int zero(int n)
{
	long int p=0;
	while(n>=5)
	{
		p+=n/5;
		n/=5;
	}
	if(n==0) return 1;
	return p;
}
int main()
{
	FILE *in = fopen("fact.in","r");
	FILE *out = fopen("fact.out","w");
	fscanf(in,"%ld",&p);
	while(l<r)
	{
		m = (l+r)/2;
		test = zero(5*m);
		if(test==p)
			break;
		else
		{
			if(test<p)
				l = m+1;
			else
				r = m-1;
		}
	}
	if(l>=r)
		fprintf(out,"%d\n",-1);
	else if(p==0) fprintf(out,"%d\n",1);
	else
		fprintf(out,"%ld\n",5*m);
	//printf("%ld\n",zero(p));
	fclose(in);fclose(out);
	return 0;
}