Números nada bons

A população de um número positivo é a quantidade de bits 1 em sua representação binária.

  • Um número maligno tem uma população par.
  • Um número odioso tem uma população ímpar.
  • Um número é pernicioso se sua população for um número primo.

Crie um método que receba um inteiro positivo e retorne um array com todos os seus descritores ("Evil", "Odious" ou "Pernicious") em ordem alfabética.

Exemplos

Program.howBad(7) ➞ new String[]{"Odious", "Pernicious"}
// 7 em binário é "111".
// Sua população é 3, portanto ele é odioso.
// 3 é primo, portanto ele também é pernicioso.

Program.howBad(17) ➞ new String[]{"Evil", "Pernicious"}
// 17 em binário é "10001".
// Sua população é 2, portanto ele é maligno e pernicioso.

Program.howBad(23) ➞ new String[]{"Evil"}
// 23 em binário é "10111".
// Sua população é 4, portanto ele é maligno, mas não pernicioso.

Notas

Cada entrada é um inteiro positivo.