Pagini recente » Cod sursa (job #1318527) | Cod sursa (job #2299919) | Cod sursa (job #27855) | Cod sursa (job #1479221) | Cod sursa (job #1442973)
#include <fstream>
#include <limits>
using namespace std;
const auto nr_zero = [](int n){
int rez = 0;
while(n){
rez += n / 5;
n /= 5; }
return rez; };
template <typename Func>
int do_search(const int rez, Func f){
if(rez == 0){
return 1; }
int st = 1, dr = numeric_limits<decltype(dr)>::max(), mij;
while(st < dr){
mij = st + (dr-st)/2;
if(f(mij) >= rez){
dr = mij; }
else{
st = mij+1; } }
return f(st) == rez ? st : -1; }
int main(){
ifstream f("fact.in");
ofstream g("fact.out");
int n;
f >> n;
g << do_search(n, nr_zero);
return 0; }