Cod sursa(job #2577205)

Utilizator lmihaigLicu Mihai lmihaig Data 8 martie 2020 17:42:31
Problema Factorial Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <iostream>
#include <fstream>
using namespace std;

ifstream in("fact.in");
ofstream out("fact.out");


unsigned long long int numar(unsigned long long int n){
    unsigned long long int p=5,rasp=0;
    while(p<=n){
        rasp+=n/p;
        p*=5;
    }
    return rasp;
}

int main()
{
    unsigned long long int p;
    in>>p;
    if(p==0)
        {
        out<<1;
        return 0;
        }
    unsigned long long int st,dr,mij,sol=0,n;
    st=1,dr=400000016;
   while(st<=dr)
    {
        mij=(st+dr)/2;
        n=numar(mij);
        if(n<p)
        {
            st=mij+1;
        }
        else
        {
            if(n==p)    sol=mij;
            dr=mij-1;
        }
	}
	if(sol==0)
	{
        out<<"-1";
        return 0;
	}
	out<<sol;
}