Cod sursa(job #2367137)

Utilizator EdyOnuEdy Onu EdyOnu Data 5 martie 2019 08:52:55
Problema Factorial Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.99 kb
// factorial.cpp : This file contains the 'main' function. Program execution begins and ends there.
//

//#include "pch.h"
#include <utility>
#include <fstream>
#include <iostream>
#define RIGHT 1000000000

using std::ifstream;
using std::ofstream;
using std::pair;
using std::cout;

int P;

inline void readData() {
	ifstream{ "fact.in" } >> P;
}

int getNumberOf5(long long x) {

	int nr = static_cast<long long>(x / 5);

	if (nr == 0) {
		return 0;
	}

	return nr + getNumberOf5(nr);
}

long long getN(long long left, long long right) {

	if (left > right) {
		return  -1;
	}

	long long nr = (left + right) >> 1;
	long long rez = getNumberOf5(nr);

	if (rez == P) {
		while (nr && nr % 5 != 0) {
			--nr;
		}
		return nr;
	}
	
	return (rez < P ? getN(nr + 1, right) : getN(left, nr - 1));
}

long long getN() {

	if (P == 0) {
		return 1;
	}

	return getN(0, RIGHT);
}

int main(){
	readData();
	ofstream{ "fact.out" } << getN();
	return 0;
}