Cod sursa(job #1977660)

Utilizator nicolaefilatNicolae Filat nicolaefilat Data 5 mai 2017 19:10:31
Problema Factorial Scor 25
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <iostream>
#include <fstream>
#include <math.h>
#define MAX 100000

using namespace std;

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

//5 10 15 20
int P;
long long int zero(int k) {
	long long int sum = 0;
	while (k) {
		sum += k / 5;
		k /= 5;
	}
	return sum;
}
int middle(int lo,int hi){
    return (lo + hi)/2;
}
int F(){
    int lo = 0, hi = 50000,mid;
    while(lo <= hi){
        mid = (lo + hi)/2;
        int 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<<F();
    }else{
        out<<"1";
    }


}