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!
fonte
Respostas:
Geléia , 7 bytes
Experimente online!
Como funciona
fonte
Æ!
parece incrivelmente útil em certos cenários.Python 3 ,
9391 bytesExperimente online!
fonte
Python 2 , 47 bytes
Experimente online!
fonte
JavaScript (ES6), 71 bytes
Os números inteiros do JavaScript são limitados a 53 bits de precisão, o que é suficiente para 18 !; isso significa que posso usar uma máscara de 18 bits para rastrear quais fatores são necessários.
fonte
PHP, 109 bytes
Experimente online!
fonte
Mathematica, 73 bytes
formulário de entrada
fonte
±x_:=First@IntegerPartitions[x,99,Range[99]!];!IntersectingQ[±#,±#2]&[4,61]
(69 bytes). Na codificação ISO 8859-1, o±
é um byte.C,
122119 bytesQ
é a função principal. Deve ser chamado com exatamente dois valores inteiros positivos. Isso sai com um código de saída0
for1
for truthy e false.Embora isso não pareça funcionar no TIO, ele funciona no meu sistema com o Homebrew fornecido
gcc 7.1.0
.Eu não pratico
C
golfe há um bom tempo, então as dicas de golfe são muito apreciadas!fonte