Divide dos números en sus factoriales; si comparten alguno, devuelva un valor falsey. De lo contrario, devuelva un valor verdadero. (inspirado por esta pregunta reciente )
En otras palabras, escriba cada número de entrada como la suma de factores (de enteros positivos) de la manera más codiciosa posible; devuelve un valor verdadero si no aparece factorial en ambas representaciones, un valor falso de lo contrario.
Ejemplo
Dado 20 y 49:
20 = 3! + 3! + 3! + 2!
49 = 4! + 4! + 1!
No aparece factorial en ambas representaciones, por lo tanto, devuelva un valor verdadero.
Dado 32 y 132:
132 = 5! + 3! + 3!
32 = 4! + 3! + 2!
3! aparece en ambas representaciones, así que devuelve un valor falsey.
I / O
La entrada y salida pueden ser a través de cualquier medio estándar .
La entrada siempre será dos enteros no negativos; sin límite superior en estos enteros que no sea el que requiere su idioma.
La salida debe ser un valor verdadero o falso . Estos valores no necesariamente tienen que ser consistentes para diferentes entradas, siempre y cuando cada salida sea correctamente verdadera / falsa.
Casos de prueba
Si una entrada es 0
, la respuesta siempre será veraz. Otros casos de prueba de verdad:
{6, 3}, {4, 61}, {73, 2}, {12, 1}, {240, 2}, {5, 264}, {2, 91}, {673, 18},
{3, 12}, {72, 10}, {121, 26}, {127, 746}
Si ambas entradas son enteros impares, o si ambas entradas son el mismo entero positivo, entonces la salida siempre será falsa. Otros casos de prueba 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}
Este es el código de golf , ¡por lo que gana menos bytes!
fuente
Respuestas:
Jalea , 7 bytes
Pruébalo en línea!
Cómo funciona
fuente
Æ!
Parece increíblemente útil en ciertos escenarios.Python 3 ,
9391 bytesPruébalo en línea!
fuente
Python 2 , 47 bytes
Pruébalo en línea!
fuente
JavaScript (ES6), 71 bytes
Los enteros de JavaScript están limitados a 53 bits de precisión, ¡lo cual es suficiente para 18 !; Esto significa que puedo usar una máscara de 18 bits para rastrear qué factoriales son necesarios.
fuente
PHP, 109 bytes
Pruébalo en línea!
fuente
Mathematica, 73 bytes
formulario de entrada
fuente
±x_:=First@IntegerPartitions[x,99,Range[99]!];!IntersectingQ[±#,±#2]&[4,61]
(69 bytes). En la codificación ISO 8859-1, el±
es un byte.C,
122119 bytesQ
Es la función principal. Debe invocarse con exactamente dos valores enteros positivos. Esto sale con un código de salida de0
verdadero y1
falso.Aunque esto no parece funcionar en TIO, funciona en mi sistema con el Homebrew proporcionado
gcc 7.1.0
.No he jugado al golf en
C
mucho tiempo, por lo que los consejos de golf son muy apreciados.fuente