Cod sursa(job #2149852)

Utilizator Teodor.mTeodor Marchitan Teodor.m Data 3 martie 2018 01:16:01
Problema Factorial Scor 95
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 n) {
	long long ans = 0;

	for(long long i = 5; i <= n; i *= 5) {
		ans += (n / i);
	}

	return ans;
}

int main() {

	long long p; in >> p;

	long long lo = 0, hi = 5 * p;
	while(lo <= hi) {
		long long mid = (lo + hi) >> 1;

		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;
}