Cod sursa(job #1611091)

Utilizator adu18sptAndrei Mircea adu18spt Data 23 februarie 2016 22:30:47
Problema Factorial Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include<fstream>
using namespace std;
ifstream fin("fact.in");
ofstream fout("fact.out");

unsigned long long p,nr;
unsigned long long step=2000000000,index;
unsigned long long nrz(unsigned long long n);
unsigned long long  cautbin(unsigned long long  p);

int main()
{
	fin>>p;
	if(p!=0)
	fout<<cautbin(p);
	else
	fout<<1;
	return 0;
}


unsigned long long nrz(unsigned long long n)
{
	nr=0;
	while(n>=5)
	{
		nr+=n/5;
		n/=5;
	}
	return nr;
}
unsigned long long cautbin(unsigned long long val)
{
	
    unsigned long long start =0;
    for(;step;step>>=1)
    {
    index=start+step;
    if(nrz(index)>val) continue;
    if(nrz(index)<=val)
    start=index;
    }
    return start-start%5;
}