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!
la source
Réponses:
Gelée , 7 octets
Essayez-le en ligne!
Comment ça fonctionne
la source
Æ!
semble incroyablement utile dans certains scénarios.Python 3 ,
9391 octetsEssayez-le en ligne!
la source
Python 2 , 47 octets
Essayez-le en ligne!
la source
JavaScript (ES6), 71 octets
Les entiers JavaScript sont limités à 53 bits de précision, ce qui est à peu près suffisant pour 18 !; cela signifie que je peux utiliser un masque de 18 bits pour suivre les factoriels nécessaires.
la source
PHP, 109 octets
Essayez-le en ligne!
la source
Mathematica, 73 octets
formulaire de saisie
la source
±x_:=First@IntegerPartitions[x,99,Range[99]!];!IntersectingQ[±#,±#2]&[4,61]
(69 octets). Dans le codage ISO 8859-1, le±
est un octet.C,
122119 octetsQ
est la fonction principale. Il doit être invoqué avec exactement deux valeurs entières positives. Cela se termine avec un code de sortie de0
pour véridique et1
pour faux.Bien que cela ne semble pas fonctionner sur TIO, cela fonctionne sur mon système avec le Homebrew fourni
gcc 7.1.0
.Je n'ai pas joué au
C
golf depuis un bon moment, donc les conseils de golf sont très appréciés!la source