Cod sursa(job #588167)

Utilizator balakraz94abcd efgh balakraz94 Data 7 mai 2011 10:07:44
Problema Factorial Scor 95
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include<cstdio>
#define nmax 400000020
using namespace std;

long P,n,sol;
void citeste();
void rezolva();
void afiseaza(long);
long legendre(long);

void citeste()
{
	freopen("fact.in","r",stdin);
	
	scanf("%ld",&P);
	
	fclose(stdin);
}



long legendre(long n)
{
	long paux=5,s=0;
	
	while(n/paux)
	{
		s+=n/paux;
		paux*=5;
	}
	
	return s;
}

long rezolva(long p, long q)
{
	if(p>q) return -1;
	
	long mij=(p+q)/2;
	
	long rez=legendre(mij);
	
	if(rez==P) return mij;
	
	if(rez>P) return rezolva(p,mij-1);
	
	return rezolva(mij+1,q);
}


void afiseaza()
{
	freopen("fact.out","w",stdout);
	
	printf("%ld\n",sol);
	
	fclose(stdout);
}

int main()
{
	citeste();
	
	sol=rezolva(1,nmax);
	
	if(sol!=-1)
		while(sol%5)
			sol--;
	
	afiseaza();
}