Cod sursa(job #2680847)

Utilizator overstainedVlad Radu overstained Data 4 decembrie 2020 15:36:50
Problema Factorial Scor 20
Compilator c-64 Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <stdio.h> 

int numbersOfZero(int n) {
    int prod = 5;
    int num = 0;
    while(n/prod != 0) {
        num += n/prod;
        prod *= 5;
    }
    return num;
}

int binarySearch(int no) {
    if(no == 0) {
        return 1;
    }
    
    int low = 0;
    int high = 1000000;

    while(low < high) {
        int mid = low+(high-low)/2;
        int nosOfZero = numbersOfZero(mid);
        if(nosOfZero == no) {
            return mid;
        }
        if(no < nosOfZero) {
            high = mid;
        } else {
            low = mid+1;
        }
    }
    return -1;
}

int main()
{

    freopen("fact.in", "r", stdin);
    freopen("fact.out", "w", stdout);
    
    int n;
    scanf("%d", &n);

    int num = binarySearch(n);



    printf("%d\n", n == 0? 1: num);
    return 0;
}