Проблема A3 з конкурсу Putnam 2008 року говорить:
Почнемо з кінцевої послідовності 1 , з 2 , ... , в п натуральних чисел. Якщо можливо, вибрати два індексу J < до так , що J поділяє на K , і замінити на J і на K по НОД ( в J , в до ) і , відповідно. Доведіть, що якщо цей процес повториться, він з часом повинен припинитися, а остаточна послідовність не залежить від зробленого вибору.
Ваша мета в цьому виклику полягає в тому, щоб прийняти за вхід кінцеву послідовність натуральних чисел і вивести результат повторення цього процесу, поки подальший прогрес не можливий. (Тобто до тих пір, поки кожне число в отриманій послідовності не розділить всі числа, що надходять після нього.) Вам не потрібно вирішувати задачу Putnam.
Це код-гольф : виграє найкоротше рішення в кожній мові програмування.
Тестові справи
[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]