Cod sursa(job #687404)

Utilizator nrpcCiprian Stirbu nrpc Data 22 februarie 2012 13:13:56
Problema Factorial Scor 95
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.48 kb
#include<stdio.h>
#include<values.h>
#include<fstream>

using namespace std;
int main()
{
	freopen("fact.in","r",stdin);
	freopen("fact.out","w",stdout);
	long x,j,ok,Pr,p,k,m,i;
	scanf("%ld",&p);
	if(p==0){printf("1");return 0;}
	i=0;j=LONG_MAX;ok=0;
	while(i<=j&&ok==0)
	{
		m=(i+j)/2;
		Pr=5;k=0;
		while(Pr<m)
		{
			k=k+m/Pr;
			Pr*=5;
		}
		if(k==p){x=m-m%5;ok=1;}
			else if(k<p) i=m+1;
				else j=m-1;
	}
	if(ok) printf("%ld",x);
	else printf("-1");
	return 0;
}