Cod sursa(job #2657508)

Utilizator NanuGrancea Alexandru Nanu Data 10 octombrie 2020 20:21:12
Problema Factorial Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.75 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;
 
long long nrcinci(ull n) {
    ull nr5 = 0, p = 5;
    while(n / p != 0) {
        nr5 += n / p;
        p *= 5;
    }
    return nr5;
}
 
long long CautareBinara(int p) {
    ull st = 1, dr = 1 << 32;
    ull x = -1;
    while(st <= dr) {
        ull mid = (st + dr) / 2;
        ull y = nrcinci(mid);
        if(y == p) {
            x = mid;
            dr = mid - 1;
        }else if(y > p)
                dr = mid - 1;
        else st = mid + 1;
    }
    return x; 
}
 
int main() {
    cin >> p;
    cout << CautareBinara(p);
    return 0;
}