Cod sursa(job #2451759)

Utilizator davidcotigacotiga david davidcotiga Data 28 august 2019 00:41:48
Problema Factorial Scor 95
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.74 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; // maybe wrtong;
	long long int rmid = -1;
	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 (p == 0)
		mid = 1;
	if (factorial(mid) != p)
		fout << rmid;
	else
		fout << mid;

	return 0;
}