Números vampiro

Un número vampiro es un entero positivo mayor que 99 que, al reordenar sus dígitos en todas las permutaciones posibles y dividir cada permutación en dos partes, es igual al producto de las partes de al menos una de esas permutaciones.

  • Si el número tiene una cantidad par de dígitos, las partes izquierda y derecha tendrán la misma longitud en cada permutación;
  • Si el número tiene una cantidad impar de dígitos y al menos tres dígitos, las partes izquierda y derecha tendrán longitudes diferentes en cada permutación posible, alternando entre ellas en el rango de +1 y -1.

Dado un entero positivo n, implementa una función que devuelva el tipo de n como una cadena:

  • 'Normal Number' si n es menor que 100 o si ninguna permutación produce un producto de sus partes igual a n.
  • 'Pseudovampire' si n es un número vampiro con una cantidad impar de dígitos.
  • 'True Vampire' si n es un número vampiro con una cantidad par de dígitos.

Ejemplos

is_vampire(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

is_vampire(126) ➞ "Pseudovampire"
# Has an odd number of digits and is greater than 99
# Permutations:
# 12 * 6 = 72
# 1 * 26 = 26
# 21 * 6 = 126

is_vampire(67) ➞ "Normal Number"
# Is lower than 100
# Permutations:
# 6 * 7 = 7 * 6 = 42

Notas

Por definición, un número del 1 al 99 es un Normal Number: un número de un solo dígito no se puede dividir en dos partes, y el producto de los dos dígitos permutados de un número siempre será menor que el propio número.