Cod sursa(job #2657366)

Utilizator NanuGrancea Alexandru Nanu Data 10 octombrie 2020 13:46:14
Problema Factorial Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <fstream>
#include <algorithm>

using namespace std;

ifstream cin("fact.in");
ofstream cout("fact.out");

#define ull unsigned long long

ull p, x, nr2, nr5;

int desc(ull n) {
    ull nr2 = 0, nr5 = 0;
    for(ull i = 1; i <= n; i++) {
        ull cop = i;
        while(cop % 2 == 0) {
            cop /= 2;
            nr2++;
        }
        while(cop % 5 == 0) {
            cop /= 5;
            nr5++;
        }
    }
    return nr5;
}

int CautareBinara(int p) {
    ull st = 1, dr = 1 << 18;
    ull x = -1;
    while(st <= dr) {
        ull mid = (st + dr) / 2;
        if(desc(mid) == p) {
            x = mid;
            dr = mid - 1;
        }else if(desc(mid) > p)
                dr = mid - 1;
        else st = mid + 1;
    }
    return x; 
}

int main() {
    cin >> p;
    cout << CautareBinara(p);
    return 0;
}