Cod sursa(job #1801732)

Utilizator horatiucheval2Horatiu Andrei Cheval horatiucheval2 Data 9 noiembrie 2016 16:29:19
Problema Factorial Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <fstream>
#include <iostream>
#include <cmath>

// nr zero-uri de la sfarsitul lui n!
int zeroes(int n){
    int p = 5, s = 0;
    while(p <= n){
        s += n / p;
        p *= 5;
    }
    return s;
}

long long binarySearch(int left, int right, int val){
    if(left <= right){
        int mid = left + (right -left) / 2;
        if(zeroes(mid) == val){
            return mid;
        }
        if(zeroes(mid) < val){
            return binarySearch(mid + 1, right, val);
        }else{
            return binarySearch(left, mid - 1, val);
        }
    }
    return -1;
}

int main(){
    std::ifstream fin("fact.in");
    std::ofstream fout("fact.out");

    int k;
    fin >> k;

    if(k == 0){
        fout << 1;
    }else{
        fout << (binarySearch(1, std::pow(5, 13), k) / 5) * 5;
    }
    fin.close();
    fout.close();
    return 0;
}