Cod sursa(job #1619578)

Utilizator biopreaOprea Bianca bioprea Data 28 februarie 2016 17:29:52
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.46 kb
#include <fstream>

using namespace std;

int main()
{
    ifstream fin("fact.in");
    ofstream fout("fact.out");

    long long n=0,aux,aux2,p,p2,nr2,nr5,s=0,P,st,dr,mij,mij1,ok;
    fin>>P;
    if(P==0)
    fout<<1;
    else
    {
        st=1;
        dr=1000000000000;
        ok=0;
        while((ok==0)&&(st<=dr))
        {
            mij=(st+dr)/2;
            aux2=mij;
            nr5=0;
            p2=5;
            while(aux2>0)
                {
                    aux2=aux2/5;
                    nr5=nr5+aux2;
                }
            s=nr5;
            if(s==P)
            ok=1;
            else
            {
                if(s<P)
                {
                    st=mij+1;
                }
                else
                {
                    dr=mij-1;
                }
            }
        }
        if(ok==0)
        fout<<-1;
        else
        {
            mij1=mij;
            while((mij1>1)&&(s==P))
            {
                mij1--;
                aux2=mij1;
                nr5=0;
                p2=5;
                while(aux2>0)
                {
                    aux2=aux2/5;
                    nr5=nr5+aux2;
                }
                s=nr5;
            }
            if(s==P)
            fout<<mij1;
            else
            {
                fout<<mij1+1;
            }
        }
    }


    fin.close ();
    fout.close ();
    return 0;
}