Cod sursa(job #2461007)

Utilizator 1chiriacOctavian Neculau 1chiriac Data 24 septembrie 2019 20:02:19
Problema Factorial Scor 85
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.57 kb
#include <fstream>

using namespace std;
ifstream fin ("fact.in");
ofstream fout ("fact.out");
long long raspuns, produs;
long long legendre (long long n)
{
	raspuns=0;produs=5;
	while(produs<=n)
		raspuns+=n/produs,produs*=5;
	return raspuns;
}
int main ()
{
	int n;long long prima,ultima,k,var1,var;
	fin>>n;
	prima=0;ultima=4000000000000000000;
	while(prima<=ultima)
	{
		k=(prima+ultima)/2;
		var=legendre(k);var1=legendre(k-1);
		if(var==n && (k==0 || var1<n))
		{
			fout<<k;
			return 0;
		}
		else if(var<n)
			prima=k+1;
		else if(var>=n)
			ultima=k-1;
	}
	return 0;
}