Divida dois números em seus fatoriais; se eles compartilharem algum, retorne um valor falsey. Caso contrário, retorne um valor verdadeiro. (inspirado nesta pergunta recente )
Em outras palavras, escreva cada número de entrada como a soma dos fatoriais (de números inteiros positivos) da maneira mais ambiciosa possível; retorne um valor verdadeiro se nenhum fatorial aparecer em ambas as representações, um valor falsey caso contrário.
Exemplo
Dado 20 e 49:
20 = 3! + 3! + 3! + 2!
49 = 4! + 4! + 1!
Nenhum fatorial aparece nas duas representações, portanto, retorne um valor verdadeiro.
Dados 32 e 132:
132 = 5! + 3! + 3!
32 = 4! + 3! + 2!
3! aparece nas duas representações, portanto, retorne um valor de falsey.
I / O
A entrada e a saída podem ser efetuadas por qualquer meio padrão .
A entrada sempre será dois números inteiros não negativos; nenhum limite superior para esses números inteiros além do que seu idioma exige.
A saída deve ser um valor verdadeiro ou falso . Esses valores não precisam necessariamente ser consistentes para entradas diferentes, desde que cada saída seja correta / verdadeira.
Casos de teste
Se uma entrada for 0
, a resposta será sempre verdadeira. Outros casos de teste de verdade:
{6, 3}, {4, 61}, {73, 2}, {12, 1}, {240, 2}, {5, 264}, {2, 91}, {673, 18},
{3, 12}, {72, 10}, {121, 26}, {127, 746}
Se ambas as entradas são números inteiros ímpares ou se as duas entradas são o mesmo número inteiro positivo, a saída será sempre falsey. Outros casos de teste de falsey:
{8, 5}, {7, 5}, {27, 47}, {53, 11}, {13, 123}, {75, 77}, {163, 160}, {148, 53},
{225, 178}, {285, 169}, {39, 51}, {207, 334}, {153, 21}, {390, 128}, {506, 584},
{626, 370}, {819, 354}
Isso é código-golfe , e o menor número de bytes vence!