Inspiré (avec l'explication volée) de cette
Contexte
Disons que vous avez deux listes A = [a_1, a_2, ..., a_n]et B = [b_1, b_2, ..., b_n]des nombres entiers. Nous disons Aest potentiellement divisible par Bs'il y a une permutation Bqui rend a_idivisible par b_ipour tous i. Le problème est alors: est-il possible de réorganiser (c'est-à-dire permuter) de Bsorte que cela a_isoit divisible par b_ipour tous i? Par exemple, si vous avez
A = [6, 12, 8]
B = [3, 4, 6]
Alors la réponse serait True, comme Bpeut être réorganisés pour être B = [3, 6, 4]et nous aurions que a_1 / b_1 = 2, a_2 / b_2 = 2et a_3 / b_3 = 2, qui sont tous des entiers, donc Aest potentiellement divisible par B.
À titre d'exemple qui devrait sortir False, nous pourrions avoir:
A = [10, 12, 6, 5, 21, 25]
B = [2, 7, 5, 3, 12, 3]
La raison en Falseest que nous ne pouvons pas réorganiser Bcar 25 et 5 sont entrés A, mais le seul diviseur en Bserait 5, donc un serait omis.
Ta tâche
Votre tâche consiste évidemment à déterminer si deux listes (données en entrée) sont potentiellement divisibles. Vous pouvez accepter les entrées de n'importe quelle manière acceptée, comme pour les sorties.
Les doublons dans les listes sont une possibilité, et les seules restrictions de taille sur les entiers sont votre langue. Tous les entiers des deux listes seront supérieurs à 0 et les deux listes seront de taille égale.
Comme pour tous les problèmes de décision, les valeurs de sortie doivent être 2 valeurs distinctes qui représentent vrai et faux.
C'est un code-golf donc le code le plus court gagne!
Cas de test
Input, input => output
[6, 12, 8], [3, 4, 6] => True
[10, 5, 7], [1, 5, 100] => False
[14, 10053, 6, 9] [1,1,1,1] => True
[12] [7] => False
[0, 6, 19, 1, 3] [2, 3, 4, 5, 6] => undefined