Le problème A3 du concours Putnam 2008 dit:
Commencez par une séquence finie d'entiers positifs. Si possible, choisissez deux indices tels que a_j ne divise pas a_k et remplacez a_j et a_k par \ gcd (a_j, a_k) et \ text {lcm} (a_j, a_k) , respectivement. Prouver que si ce processus se répète, il doit finalement s'arrêter et la séquence finale ne dépend pas des choix effectués.
Votre objectif dans ce défi est de prendre une séquence finie d'entiers positifs en entrée et de produire le résultat de la répétition de ce processus jusqu'à ce qu'aucun autre progrès ne soit possible. (Autrement dit, jusqu'à ce que chaque nombre de la séquence résultante divise tous les nombres qui le suivent.) Vous n'avez pas besoin de résoudre le problème de Putnam.
C'est le code-golf : la solution la plus courte dans tous les langages de programmation l'emporte.
Cas de test
[1, 2, 4, 8, 16, 32] => [1, 2, 4, 8, 16, 32]
[120, 24, 6, 2, 1, 1] => [1, 1, 2, 6, 24, 120]
[97, 41, 48, 12, 98, 68] => [1, 1, 2, 4, 12, 159016368]
[225, 36, 30, 1125, 36, 18, 180] => [3, 9, 18, 90, 180, 900, 4500]
[17, 17, 17, 17] => [17, 17, 17, 17]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] => [1, 1, 1, 1, 1, 2, 2, 6, 60, 2520]