Cod sursa(job #1977692)

Utilizator nicolaefilatNicolae Filat nicolaefilat Data 5 mai 2017 21:22:35
Problema Factorial Scor 25
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
/*
    solutie bazata pe cautare binara care foloseste o functie de calculare
    zerouri factorial si se opreste atunci cand zero(mid) == P

*/

#include <fstream>

using namespace std;

ifstream in("fact.in");
ofstream out("fact.out");



long long int zero(int k) {
	long long int sum = 0;
	while (k) {
		sum += k / 5;
		k /= 5;
	}
	return sum;
}
int P;
long int cautbin(){
    long lo = 0, hi = 10000,mid;
    while(lo <= hi){
        mid = (hi - lo)/2 + lo;
        long best = zero(mid);
        if(best == P){
            return mid - mid % 5;
        }else if(best < P){
            lo = mid + 1 ;
        }else{
            hi = mid - 1;
        }
    }
    return -1;
}

int main()
{
    in>>P;
    if(P){
        out<<cautbin();
    }else{
        out<<"1";
    }


}