Cod sursa(job #2713545)

Utilizator mariusn01Marius Nicoli mariusn01 Data 28 februarie 2021 11:07:05
Problema Factorial Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <fstream>

using namespace std;
long long prod, i, j, nrZero, p, st, dr;

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

int main () {
    fin>>p;
    st = 1; dr = p*5;
    while (st <= dr){

        int mid = (st + dr)/2;

        nrZero = 0;
        int p5 = 5;
        while (p5 <= mid) {
            nrZero += mid/p5;
            p5 *= 5;
        }
        /// nrZero inseamna cate zerouri are la final mid!

        if(nrZero < p)
            st = mid+1;
        else
            dr = mid-1;

    }

    /// st va ramane pe acea valoare al carei factorial are cel putin p zerouri

    nrZero = 0;
    int p5 = 5;
    while (p5 <= st) {
        nrZero += st/p5;
        p5 *= 5;
    }

    if (nrZero == p)
        fout<<st;
    else
        fout<<-1;

}