Cod sursa(job #2774292)

Utilizator amcbnCiobanu Andrei Mihai amcbn Data 10 septembrie 2021 21:15:38
Problema Factorial Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.76 kb
/* [A][M][C][B][N] / [K][R][I][P][6][8] */
#include <bits/stdc++.h>
#pragma warning(disable : 4996)
using namespace std;
// Global variables
const char sp = ' ', nl = '\n';
const int MOD = 777013; // 666013 998244353 1000000007
ifstream fin("fact.in");
ofstream fout("fact.out");

int legendre(long long n) {
	int cnt(0);
	while (n) {
		cnt += n / 5;
		n /= 5;
	}
	return cnt;
}

int main() {
	int p;
	fin >> p;
	if (p) {
		long long st(1), dr(400000015), mid;
		while (st <= dr) {
			mid = (st + dr) / 2;
			if (legendre(mid) == p) break;
			if (legendre(mid) > p) dr = mid - 1;
			else st = mid + 1;
		}
		while (legendre(mid - 1) == legendre(mid)) mid--;
		if (legendre(mid) == p) fout << mid;
		else fout << -1;
	}
	else fout << 1;
}