Cod sursa(job #2970309)

Utilizator andrei.nita271@gmail.comAndrei Nita [email protected] Data 24 ianuarie 2023 21:17:24
Problema Factorial Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("fact.in");
ofstream out("fact.out");
long long fv[6];
void fact(int a) {
	for (long long i = 2; i <= a; i++) {
		long long aux = i;
		while (aux % 2 == 0) {
			aux = aux / 2;
			fv[2]++;
		}
		while (aux % 5 == 0) {
			aux = aux / 5;
			fv[5]++;
		}
	}
	}
int zero(int a) {
	int cnt = 0, x = fv[5], y = fv[2];
	if (x > y) {
		int aux = x;
		x = y;
		y = aux;
	}
	return x;
}
void caut_bin(int x) {
	long long st = 1, dr = 99999998, rez = -1;
	while (st <= dr) {
		long long m = (st + dr) / 2;
		fact(m);
		int cnt = zero(m);
		if (cnt < x) {
			st = m + 1;
		}
			else if (cnt == x) {
				rez = m;
				dr = m - 1;
			}
			else {
				dr = m - 1;
			}
		fv[2] = 0;
		fv[5] = 0;
		}
	out << rez;
}

int main() {
	int x;
	in >> x;
	caut_bin(x);
}