Cod sursa(job #1418744)

Utilizator pas.andreiPopovici Andrei-Sorin pas.andrei Data 13 aprilie 2015 21:42:08
Problema Factorial Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <vector>
#include <fstream>
#include <cstring>

using namespace std;

int main() {
	unsigned n, p, st, dr, mid, multipli5, m5;

	ifstream fin("fisier.in");
	fin >> p;
	fin.close();
	
	ofstream fout("fisier.out");

	n = -1;
	if (p == 0)
		fout << 1;
	else {
		st = 1;
		dr = p * 5;
		multipli5 = 0;
		while (st <= dr) {
			mid = (st + dr) / 2;

			m5 = 5;
			multipli5 = 0;
			while (m5 <= mid) {
				multipli5 += mid / m5;
				m5 *= 5;
			}

			if (multipli5 > p)
				dr = mid - 1;
			else if (multipli5 < p)
				st = mid + 1;
			else {
				n = mid;
				dr = mid - 1;
			}
		}
		
		fout << n;
	}

	
	fout.close();

	return 0;
}