Cod sursa(job #2451760)

Utilizator davidcotigacotiga david davidcotiga Data 28 august 2019 00:43:22
Problema Factorial Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.75 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 = 1; // maybe wrtong;
	long long int rmid = -1;
	if (p != 0) {
		while (b >= a) {
			mid = (a + b) / 2;
			if (factorial(mid) == p)
				rmid = mid;
			if (p > factorial(mid)) {
				a = mid + 1;
			}
			else {
				b = mid - 1;
			}
		}
	}
	
	if (factorial(mid) != p)
		fout << rmid;
	else
		fout << mid;

	return 0;
}