Cod sursa(job #1626634)

Utilizator sebi110Ciobanu Sebastian sebi110 Data 3 martie 2016 10:48:12
Problema Factorial Scor 85
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <fstream>

using namespace std;
ifstream fin("fact.in");
ofstream fout("fact.out");
int exp(int n)
{
    int e=0,x;
    x=5;
    while(n>=x)
    {
        e=e+n/x;
        x=x*5;
    }
    return e;
}
int main()
{
    long long n=0,dr,st,p=0,mij=0,z=0,val;
    fin>>p;
    st=1;dr=2000000000;
    while(st<dr)
    {
        mij=(st+dr)/2;
        z=exp(mij);

        if(z==p){
                val=mij;
                break;
        }
        else {if(p<z)
        {
            dr=mij-1;
        }
        else{
            if(p>z)
            {
                st=mij+1;
            }
        }}
    }
    if(val==-1)
    {
        fout<<-1<<'\n';
    }
    else
    {
        while(val%5!=0)
            val--;
        fout<<val;
    }
    return 0;
}