Cod sursa(job #686836)

Utilizator geobarosanu1Tutuianu George geobarosanu1 Data 21 februarie 2012 21:45:44
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <stdio.h>
using namespace std;

unsigned long int p;

long long int nr_zerouri(long long int x){

	long long nr=0;

	while (x){
		nr+=x/5;
		x/=5;
	}
	return nr;
}
long long int caut_binar(unsigned long long int st, unsigned long long int dr){
	if (st>=dr)
		return -1;
	unsigned long long int mij=dr-((dr-st)/2);
	long long int nr=nr_zerouri(mij);

	if (nr==p)
		return mij;
	else if (nr<p)
		return caut_binar(mij+1,dr);
	else
		return caut_binar(st,mij-1);
	
}
int main()
{
	freopen("fact.in","r",stdin);
	freopen("fact.out","w",stdout);
	scanf("%ld", &p);

	if (p==0)
		printf("1");
	else{
		long long nr=caut_binar(1, 400000000000000 );
		if (nr!=-1){
			while(nr_zerouri(nr)==p){
				nr--;
			}
			nr++;
		}
				
		printf("%lld", nr);
	}

	return 0;
}