Cod sursa(job #1661801)

Utilizator cyg_w1lddiv3rAndrei Mina cyg_w1lddiv3r Data 24 martie 2016 10:36:02
Problema Factorial Scor 100
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 main()
{
    int p,st,dr,P,med,lastst;
    long long numitor;
    fin>>P;
    lastst=-1;
    st=1;
    dr=2000000000;
    while(st<=dr)
    {
        med=dr-(dr-st)/2;
        p=0;
        numitor=5;
        while(numitor<=med)
        {
            p=p+med/numitor;
            numitor=numitor*5;
        }
        if(p>=P)
        {
            dr=med-1;
            lastst=med;
        }
        else
            st=med+1;
    }
    p=0;
    numitor=5;
    while(numitor<=lastst)
    {
        p=p+lastst/numitor;
        numitor=numitor*5;
    }
    if(p==P)
        fout<<lastst<<"\n";
    else
        fout<<-1<<"\n";
    fin.close();
    fout.close();
    return 0;
}