#include <unordered_map>
#include <random>
#include <iostream>
template <typename Numeric, typename Divisor>
inline constexpr bool isDivisibleBy(Numeric numeric, Divisor divisor)
{
return ((numeric >= divisor) && ((numeric % divisor) == 0));
}
constexpr auto isEven = [](int test) -> bool { return isDivisibleBy<int, int>(test, 2); };
int main()
{
std::mt19937 randomEngine{std::random_device{}()};
std::uniform_int_distribution<int> randomDistribution{0, 100};
std::unordered_map<int, bool> hash{};
for (int i = 0; i < 10; i++) {
int randomNumber{randomDistribution(randomEngine)};
hash.emplace(randomNumber, isEven(randomNumber));
}
for (auto &hash : hash) {
std::cout << "key \"" << hash.first << "\" is " << (hash.second ? "even" : "odd") << std::endl;
}
return 0;
}
I2luY2x1ZGUgPHVub3JkZXJlZF9tYXA+CiNpbmNsdWRlIDxyYW5kb20+CiNpbmNsdWRlIDxpb3N0cmVhbT4KCnRlbXBsYXRlIDx0eXBlbmFtZSBOdW1lcmljLCB0eXBlbmFtZSBEaXZpc29yPgppbmxpbmUgY29uc3RleHByIGJvb2wgaXNEaXZpc2libGVCeShOdW1lcmljIG51bWVyaWMsIERpdmlzb3IgZGl2aXNvcikKewogICAgcmV0dXJuICgobnVtZXJpYyA+PSBkaXZpc29yKSAmJiAoKG51bWVyaWMgJSBkaXZpc29yKSA9PSAwKSk7Cn0KCmNvbnN0ZXhwciBhdXRvIGlzRXZlbiA9IFtdKGludCB0ZXN0KSAtPiBib29sIHsgcmV0dXJuIGlzRGl2aXNpYmxlQnk8aW50LCBpbnQ+KHRlc3QsIDIpOyB9OwoKaW50IG1haW4oKQp7CiAgICBzdGQ6Om10MTk5MzcgcmFuZG9tRW5naW5le3N0ZDo6cmFuZG9tX2RldmljZXt9KCl9OwogICAgc3RkOjp1bmlmb3JtX2ludF9kaXN0cmlidXRpb248aW50PiByYW5kb21EaXN0cmlidXRpb257MCwgMTAwfTsKICAgIHN0ZDo6dW5vcmRlcmVkX21hcDxpbnQsIGJvb2w+IGhhc2h7fTsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgMTA7IGkrKykgewogICAgICAgIGludCByYW5kb21OdW1iZXJ7cmFuZG9tRGlzdHJpYnV0aW9uKHJhbmRvbUVuZ2luZSl9OwogICAgICAgIGhhc2guZW1wbGFjZShyYW5kb21OdW1iZXIsIGlzRXZlbihyYW5kb21OdW1iZXIpKTsKICAgIH0KICAgIGZvciAoYXV0byAmaGFzaCA6IGhhc2gpIHsKICAgICAgICBzdGQ6OmNvdXQgPDwgImtleSBcIiIgPDwgaGFzaC5maXJzdCA8PCAiXCIgaXMgIiA8PCAoaGFzaC5zZWNvbmQgPyAiZXZlbiIgOiAib2RkIikgPDwgc3RkOjplbmRsOwogICAgfQogICAgcmV0dXJuIDA7Cn0K