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 A
est potentiellement divisible par B
s'il y a une permutation B
qui rend a_i
divisible par b_i
pour tous i
. Le problème est alors: est-il possible de réorganiser (c'est-à-dire permuter) de B
sorte que cela a_i
soit divisible par b_i
pour tous i
? Par exemple, si vous avez
A = [6, 12, 8]
B = [3, 4, 6]
Alors la réponse serait True
, comme B
peut être réorganisés pour être B = [3, 6, 4]
et nous aurions que a_1 / b_1 = 2
, a_2 / b_2 = 2
et a_3 / b_3 = 2
, qui sont tous des entiers, donc A
est 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 False
est que nous ne pouvons pas réorganiser B
car 25 et 5 sont entrés A
, mais le seul diviseur en B
serait 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