Improved and documented gerar_primo(ordem)