Cod sursa(job #1893246)

Utilizator EuAlexOtaku Hikikomori EuAlex Data 25 februarie 2017 16:06:59
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <cstdio>

using namespace std;

long long nrzero(long long n) {
    long long rasp = 0;
    while(n) {
        rasp += n / 5;
        n /= 5;
    }
    return rasp;
}

void cautbin(long long st, long long dr, long long val) {
    long long med, last = -1, temp;
    while(st <= dr ) {
        med = st + (dr - st) / 2;
        temp = nrzero(med);
        if(temp >= val) {
            if(temp == val)
                last = med;
            dr = med - 1;
        } else {
            st = med + 1;
        }
    }
    printf("%lld", last);
}

int main() {
    freopen("fact.in", "r", stdin);
	freopen("fact.out", "w", stdout);

    long long n;
    scanf("%lld", &n);
    cautbin(1, (1LL << 61), n);

    return 0;
}