Cod sursa(job #2451756)

Utilizator davidcotigacotiga david davidcotiga Data 28 august 2019 00:33:33
Problema Factorial Scor 65
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.69 kb

#include <fstream>
#include <iostream>

using namespace std;

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

unsigned long long int factorial(unsigned long long p) {
	unsigned long long nrz = 0;
	while (p >= 5) {
		nrz += p / 5;
		p /= 5;
	}
	return nrz;
}

int main() {
	unsigned long long p;
	fin >> p;
	unsigned long long int b = 400000015; //
	unsigned long long int a = 0;
	unsigned long long int mid = 0; // maybe wrtong;
	if (p != 0) {
		while (b >= a) {
			mid = (a + b) / 2;
			if (p > factorial(mid)) {
				a = mid + 1;
			}
			else {
				b = mid - 1;
			}
		}
	}
	
	if (factorial(mid) != p)
		fout << "-1";
	else
		fout << mid;

	return 0;
}