#include <array>
#include <cmath>
#include <iostream>
#include <utility>

double genEntry(std::uint32_t x) { 
    return x == 0 ? 0 : std::log(x) / std::log(5);
}

template <typename F, std::size_t ... Is>
auto
make_array(F f, std::index_sequence<Is...>)
-> std::array<std::decay_t<decltype(f(0u))>, sizeof...(Is)>
{
	return {{f(Is)...}};
}


int main() {
	const auto a = make_array(genEntry, std::make_index_sequence<16>());
	
	for (auto e : a) {
		std::cout << e << std::endl;
	}
}
