Cod sursa(job #1696083)

Utilizator anav23Ana Vasiliu anav23 Data 28 aprilie 2016 13:45:12
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.6 kb
#include <iostream>
#include <fstream>
using namespace std;

int main()
{
    ifstream fin("fact.in");
    ofstream fout("fact.out");
    long long int p;
    fin>>p;
    long long int st=1,dr=5*p,mij;
    while(st<=dr) {
        mij=(st+dr)/2;
        long long int nZero=0;
        for(int i=5;i<=mij;i*=5)
            nZero+=mij/i;
        if(nZero==p)
            break;
        else if(nZero<p)
            st=mij+1;
        else
            dr=mij-1;
    }
    if(p==0)
        fout<<"1";
    else if(st<=dr)
        fout<<mij-mij%5;
    else
        fout<<"-1";
    return 0;
}