Divisez deux nombres en leurs factoriels; s'ils en partagent, renvoyez une valeur de falsey. Sinon, retournez une valeur véridique. (inspiré par cette question récente )
En d'autres termes, écrivez chaque nombre d'entrée comme la somme des factorielles (d'entiers positifs) de la manière la plus gourmande possible; retourner une valeur véridique si aucune factorielle n'apparaît dans les deux représentations, une valeur de falsey sinon.
Exemple
Étant donné 20 et 49:
20 = 3! + 3! + 3! + 2!
49 = 4! + 4! + 1!
Aucun factoriel n'apparaît dans les deux représentations, donc retournez une valeur véridique.
Étant donné 32 et 132:
132 = 5! + 3! + 3!
32 = 4! + 3! + 2!
3! apparaît dans les deux représentations, retournez donc une valeur de falsey.
E / S
L'entrée et la sortie peuvent se faire par n'importe quel moyen standard .
L'entrée sera toujours deux entiers non négatifs; aucune limite supérieure sur ces entiers autre que ce dont votre langue a besoin.
La sortie doit être une valeur true ou falsey . Ces valeurs ne doivent pas nécessairement être cohérentes pour différentes entrées, tant que chaque sortie est correctement véridique / falsey.
Cas de test
Si une entrée est 0
, la réponse sera toujours véridique. Autres cas de test véridiques:
{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 les deux entrées sont des entiers impairs, ou si les deux entrées sont le même entier positif, alors la sortie sera toujours falsey. Autres cas de test 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}
Il s'agit de code-golf , donc le moins d'octets gagne!