Cod sursa(job #1385358)

Utilizator GinguIonutGinguIonut GinguIonut Data 11 martie 2015 21:42:59
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <fstream>
using namespace std;
ifstream fin("fact.in");
ofstream fout("fact.out");
long int i,j,p,sol,st,dr,mijl,nr,nr1;
int verif(int val)
{
    int nr=0;
    nr1=0;
    int pas=1;
    pas=5;
    while(pas<=val)
    {
        nr+=val/pas;
        pas=1ll*pas*5;
    }
    nr1=nr;
    return nr;
}
int main()
{
fin>>p;
if(p==0)
    fout<<1;
else
{
    st=1;
    dr=1<<30;
    while(st<=dr)
    {
        mijl=(st+dr)/2;
        if(verif(mijl)<=p)
        {
            if(nr1==p)
            {
                sol=mijl;
                break;
            }
            else
                if(nr1<p)
                    st=mijl+1;
        }
        else
            dr=mijl-1;
    }
if(sol==0)
    fout<<-1;
else
{
    if(sol%5!=0)
        while(sol%5!=0)
            sol--;
    fout<<sol;
}
}

    return 0;
}