Cod sursa(job #2107290)

Utilizator GarboteialexGarbotei Alex Garboteialex Data 16 ianuarie 2018 22:45:28
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("fact.in");
ofstream fout("fact.out");
long long p,x,y,exp2;

unsigned long long fbin(){
    unsigned long long lo = 1, hi = 5 * p + 100, mid, cmid, exp;
    while(lo < hi){
        mid = lo + (hi - lo) / 2;
        cmid = mid;
        exp = 0;
        while(cmid > 0){
            exp += cmid / 5;
            cmid /= 5;
        }
        if(exp < p){
            lo = mid + 1;
        }else{
            hi = mid ;
        }
    }
        return hi;
}

int main(){
    fin>>p;
    x = fbin();
    y = x;
    while(y > 0){
        exp2 += y/5;
        y /= 5;
    }
    if(exp2 == p){
        fout<<x;
    }else{
        fout<<"-1";
    }
}