Números Vampiro
Um Número Vampiro é um inteiro positivo maior que 99 que, ao reorganizar seus dígitos em todas as permutações possíveis e dividir cada permutação em duas partes, é igual ao produto das partes de pelo menos uma dessas permutações.
- Se o número tiver uma quantidade par de dígitos, as partes esquerda e direita terão o mesmo comprimento em todas as permutações;
- Se o número tiver uma quantidade ímpar de dígitos e pelo menos três dígitos, as partes esquerda e direita terão comprimentos diferentes em cada permutação possível, alternando entre si no intervalo de +1 e -1.
Dado um inteiro positivo n, implemente uma função que retorne o tipo de n como uma string:
'Normal Number'senfor menor que 100 ou se nenhuma permutação produzir um produto de suas partes igual an.'Pseudovampire'senfor um Número Vampiro com uma quantidade ímpar de dígitos.'True Vampire'senfor um Número Vampiro com uma quantidade par de dígitos.
Exemplos
isVampire(1260) ➞ "True Vampire"
// Has an even number of digits and is greater than 99)
// Permutations:
// 12 * 60 = 720
// 16 * 20 = 320
// 10 * 26 = 260
// 21 * 60 = 1260
isVampire(126) ➞ "Pseudovampire"
// Has an odd number of digits and is greater than 99
// Permutations:
// 12 * 6 = 72
// 1 * 26 = 26
// 21 * 6 = 126
isVampire(67) ➞ "Normal Number"
// Is lower than 100
// Permutations:
// 6 * 7 = 7 * 6 = 42Observações
Por definição, um número de 1 a 99 é um Normal Number: um número de um único dígito não pode ser dividido em duas partes, e o produto dos dois dígitos permutados de um número sempre será menor que o próprio número.