Cod sursa(job #2144907)

Utilizator Teodor.mTeodor Marchitan Teodor.m Data 26 februarie 2018 23:37:24
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.55 kb
#include <bits/stdc++.h>
using namespace std;
 
ifstream in("fact.in");
ofstream out("fact.out");

long long CountZeros(long long value) {
	long long ans = 0;
	for(long long i = 5; i <= value; i *= 5) {
		ans += (value / i);
	}

	return ans;
}

int main() {

	int p; in >> p;

	long long lo = 1, hi = 5 * p;
	while(lo <= hi) {
		long long mid = (lo + hi) / 2;
		if(CountZeros(mid) < p) {
			lo = mid + 1;
		} else {
			hi = mid - 1;
		}
	}

	if(CountZeros(lo) == p) {
		out << lo << '\n';
	} else {
		out << "-1\n";
	}

    in.close(); out.close();
 
    return 0;
}