EDIT: No interesse de aumentar a complexidade, eu adicionei mais ao desafio.
Em matemática, um número de vampiro (ou número de vampiro verdadeiro) é um número natural composto v, com um número par de dígitos n, que pode ser fatorado em dois números inteiros x e y, cada um com n / 2 dígitos e não ambos com zeros à direita, onde v contém precisamente todos os dígitos de xe de y, em qualquer ordem, contando a multiplicidade. x e y são chamados de presas.
Mais sobre o número de vampiros
Números de pseudo-vampiro
Os números de pseudo-vampiro são semelhantes aos números de vampiro, exceto que as presas de um número de pseudo-vampiro de um dígito n não precisam ter o comprimento de n / 2 dígitos. Os números de pseudo-vampiro podem ter um número ímpar de dígitos, por exemplo 126 = 6 × 21.
Entrada
Aceitar números da linha de comando ou stdin
Resultado
- "1260 = 21 * 60" (canino menor primeiro se o número for um vampiro.)
- "1261 não é um número de vampiro." (se o número não for um número de vampiro)
- "126 = 6 * 21". (se o número for um número de pseudo-vampiro)
EDIT: Se o número tiver várias presas, exiba-o.
x = fang1a * fang1b = fang2a * fang2b
fang1a
aparece antes fang2a
quandofang1a < fang2a