Cod sursa(job #2622341)

Utilizator andreea.bucurBucur Andreea andreea.bucur Data 31 mai 2020 23:07:04
Problema Factorial Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <fstream>
#include <iostream>

using namespace std;

ifstream f("fact.in");
ofstream g("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;
	f>> p;
	unsigned long long  b = 400000015; //
	unsigned long long  a = 0;
	unsigned long long  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)
		g << rmid;
	else
		g << mid;

	return 0;
}