Aqui serão descritos os detalhes da implementação dos dois programas: a resolução por força bruta, que será chamada de fbruta, e a resolução pela heurística, chamada de heuristica. Como o esqueleto geral dos programas é muito parecido - na realidade, há muito código idêntico -, toda a descrição serve para ambos, exceto quando notado.