#include <iostream>
#include <stdint.h>

int main() {
	const auto n_hashbits = 5;
	auto magic = (1ull << 50) + (2ull << 39) + (3ull << 30) + (5ull << 21);
	std::cout << "Magic: " << std::hex << magic << std::dec << "\n";
	
	for (auto square : {9, 11, 20, 29, 38}) {
		uint64_t bitboard = 1ull << square;
		uint64_t index = magic * bitboard;
		index >>= (64  - n_hashbits);
		std::cout << square << " => " << index << "\n";
	}
}