Cod sursa(job #1883368)

Utilizator icansmileSmileSmile icansmile Data 17 februarie 2017 22:13:44
Problema Factorial Scor 15
Compilator cpp Status done
Runda Arhiva de probleme Marime 1 kb
#include <iostream>
#include <fstream>

using namespace std;

long long number_of_zero(long long n){
    long long count = 0;
    long long power_of_five = 5;

    while(power_of_five <= n){
        count = count + n/ power_of_five;
        power_of_five = power_of_five*5;
    }

    return count;
}

long long find_number(long long p, long long high, long long low){
    if( p == 0 )
        return 1;

    long long mid = low + (high - low)/2;

    if( number_of_zero(mid) == p)
    {
        while(number_of_zero(mid) == p){
            mid--;
        }
        return (mid + 1);
    }
    if( number_of_zero(mid) > p )
        return find_number(p,low,mid - 1);
    if( number_of_zero(mid) < p)
        return find_number(p,mid + 1,high);
}

int main() {
    long long p;
    long long x = INT8_MAX;
    ifstream file_in;
    ofstream file_out;
    file_in.open("fact.in");
    file_out.open("fact.out");

    file_in >> p;
    file_out << find_number(p,0,x);

    file_in.close();
    file_out.close();

    return 0;
}