eolymp
bolt
Спробуйте наш новий інтерфейс для відправки розв'язків

НСД

НСД (найбільший спільний дільник) набору чисел це найбільше число, на яке діляться усі числа заданого набору.

Алгоритм обчислення НСД з відніманням (алгоритм Евкліда): вибираються два ненульових числа з заданого набору, і більше число міняється різницею більшого і меншого. Ця операція повторюється, поки у наборі залишається не менше двох ненульових чисел.

Якщо усі числа, кріме одного, стали рівні 0, то алгоритм завершується, а ненульове число, що залишилось, і є НСД заданого набору.

Один крок алгоритму: вибір двох ненульових чисел з заданого набору і заміна більшого різницею. Існує багато стратегій вибору на черговому кроці пари чисел. При цьому кількість кроків у різних стратегіях буде різною.

Потрібно написати програму, яка визначає мінімальну кількість кроків при обчисленні НСД віднімання для заданого набору чисел.

Вхідні дані

Містить декілька (до 1000) тестів. Кожен тест записано в окремому рядку і починається з кількості чисел у наборі n (n4). Далі у рядку йдуть n чисел заданого набору A1 A2 ... An (1Ai50).

Завершення тестів - число 0 у окремому рядку.

Вихідні дані

Для кожного тесту виведіть в окремому рядку мінімально можливу кількість кроків для знаходження НСД.

Ліміт часу 1 секунда
Ліміт використання пам'яті 128 MiB
Вхідні дані #1
1 32
2 2 4
4 1 2 3 4 
3 2 3 9
3 3 6 6
4 6 8 3 7
4 43 50 50 50
2 50 49
4 50 1 1 1
0
Вихідні дані #1
0
2
6
6
3
8
14
50
52
Джерело 2005 Петрозаводск, SPb ETU Contest, Август 25, Задача E