Números nada buenos

La población de un número positivo es la cantidad de bits 1 que contiene su representación binaria.

  • Un número malvado tiene una población par.
  • Un número odioso tiene una población impar.
  • Un número es pernicioso si su población es un número primo.

Crea un método que reciba un entero positivo y devuelva un arreglo con todos sus descriptores ("Evil", "Odious" o "Pernicious") en orden alfabético.

Ejemplos

Program.howBad(7) ➞ new String[]{"Odious", "Pernicious"}
// 7 en binario es "111".
// Su población es 3, por lo que es odioso.
// 3 es primo, por lo que también es pernicioso.

Program.howBad(17) ➞ new String[]{"Evil", "Pernicious"}
// 17 en binario es "10001".
// Su población es 2, por lo que es malvado y pernicioso.

Program.howBad(23) ➞ new String[]{"Evil"}
// 23 en binario es "10111".
// Su población es 4, por lo que es malvado, pero no pernicioso.

Notas

Cada entrada es un entero positivo.