#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;
}
}
I2luY2x1ZGUgPGFycmF5PgojaW5jbHVkZSA8Y21hdGg+CiNpbmNsdWRlIDxpb3N0cmVhbT4KI2luY2x1ZGUgPHV0aWxpdHk+Cgpkb3VibGUgZ2VuRW50cnkoc3RkOjp1aW50MzJfdCB4KSB7IAogICAgcmV0dXJuIHggPT0gMCA/IDAgOiBzdGQ6OmxvZyh4KSAvIHN0ZDo6bG9nKDUpOwp9Cgp0ZW1wbGF0ZSA8dHlwZW5hbWUgRiwgc3RkOjpzaXplX3QgLi4uIElzPgphdXRvCm1ha2VfYXJyYXkoRiBmLCBzdGQ6OmluZGV4X3NlcXVlbmNlPElzLi4uPikKLT4gc3RkOjphcnJheTxzdGQ6OmRlY2F5X3Q8ZGVjbHR5cGUoZigwdSkpPiwgc2l6ZW9mLi4uKElzKT4KewoJcmV0dXJuIHt7ZihJcykuLi59fTsKfQoKCmludCBtYWluKCkgewoJY29uc3QgYXV0byBhID0gbWFrZV9hcnJheShnZW5FbnRyeSwgc3RkOjptYWtlX2luZGV4X3NlcXVlbmNlPDE2PigpKTsKCQoJZm9yIChhdXRvIGUgOiBhKSB7CgkJc3RkOjpjb3V0IDw8IGUgPDwgc3RkOjplbmRsOwoJfQp9Cg==