Cod sursa(job #2336123)

Utilizator CristianSoareSoare Cristian Costantin CristianSoare Data 4 februarie 2019 20:05:54
Problema Factorial Scor 60
Compilator cpp-64 Status done
Runda smenuri Marime 0.68 kb
#include <fstream>
using namespace std;

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

int main(){
    long long p, n = 5, st, dr, m, nr;
    fin >> p;
    if (p == 0){
        fout << 1;
        return 0;
    }
    st = 1;
    dr = 100000000;
    while (st < dr){
        m = (st+dr)/2;
        nr = 0;
        n = m;
        while (n){
            n /= 5;
            nr += n;
        }
        if (nr >= p)
            dr = m;
        else st = m+1;
    }
    n = 0;
    st = dr;
    while (dr){
        dr /= 5;
        n += dr;
    }
    if (n == p)
        fout << st;
    else fout << -1;
    fin.close();
    fout.close();
    return 0;
}