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 evil tiene una población par.
  • Un número odious tiene una población impar.
  • Un número es pernicious si su población es un número primo.

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

Ejemplos

howBad(7) ➞ ["Odious", "Pernicious"]
// 7 en binario es "111".
// Su población es 3, por lo que se clasifica como odious.
// 3 es primo, por lo que también se clasifica como pernicious.

howBad(17) ➞ ["Evil", "Pernicious"]
// 17 en binario es "10001".
// Su población es 2, por lo que se clasifica como evil y pernicious.

howBad(23) ➞ ["Evil"]
// 23 en binario es "10111".
// Su población es 4, por lo que se clasifica como evil, pero no como pernicious.

Notas

Todas las entradas son enteros positivos.