Cod sursa(job #248045)

Utilizator ssergiussSergiu-Ioan Ungur ssergiuss Data 24 ianuarie 2009 18:30:34
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.59 kb
#include<algorithm>
using namespace std;
int p;
void solve(){
	int st,dr,x,y,m,k,ok;
	scanf("%d",&p);
	if(!p)
		printf("1");
	else{
		for(st=1,dr=1000000000,ok=0; st<dr; ){
			m=(st+dr)/2;
			for(x=m,k=0; x; k+=x/=5);
			if(k>p)
				dr=m-1;
			else if(k<p)
				st=m+1;
			else{
				y=m;
				ok=1;
				break;}}
		if(ok){
			for(k=p; k==p; ){
				for(x=y-1,k=0; x; k+=x/=5);
				if(k==p)
					--y;
				else
					break;}
			printf("%d",y);}
		else
			printf("-1");}}
int main(){
    freopen("fact.in","r",stdin);
    freopen("fact.out","w",stdout);
    solve();
    return 0;}