Cod sursa(job #2271571)

Utilizator divianegoescuDivia Negoescu divianegoescu Data 28 octombrie 2018 21:23:39
Problema Factorial Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.61 kb
#include <fstream>
using namespace std;
ifstream fin("fact.in");
ofstream fout("fact.out");
///400000015! are 10^8 zerouri
int c,s;
bool ok=0;
long long p,x,st,dr,mid;
int main()
{
    fin>>c;
    if(c==0){fout<<"1";return 0;}
    st=5;
    dr=400000015;

    while(st<=dr)
    {
        mid=(st+dr)/2;
        x=mid;
        p=5;
        s=0;
        while(x/p>0)
        {
            s+=x/p;
            p*=5;
        }
        if(s==c) {ok=1;break;}
        else if(s<c) st=mid+1;
        else dr=mid-1;
    }
    if(ok==1)
        fout<<mid/5*5;
    else fout<<"-1";
    return 0;
}