Ctrl K

Самая большая группа с общими делителями

Сложная
Дан массив values из различных целых положительных чисел. Свяжем два числа, если у них есть общий делитель больше 1. Связи передаются по цепочке: если a связано с b, а b с c, то все три попадают в одну группу, даже когда у a и c общих делителей нет. Верните количество чисел в самой большой группе.
Пример 1
values=[10, 21, 14, 9, 11] → 4

10 и 14 делятся на 2, 14 и 21 — на 7, 21 и 9 — на 3. Так 10, 14, 21 и 9 оказываются в одной группе; у 11 общих делителей ни с кем нет. Ответ 4.

Пример 2
values=[8, 25, 27, 49] → 1

Любые два числа здесь взаимно просты, каждая группа — из одного числа.

Пример 3
values=[6, 35, 1, 15] → 3
Ограничения
  • 1 ≤ len(values) ≤ 2 · 10⁴
  • 1 ≤ values[i] ≤ 10⁵
  • все числа в values различны
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиГруппы по малому НОК СложнаяГорода, связанные большими делителями СложнаяСортировка обменами по общему делителю СложнаяПервый взаимно простой разрез СложнаяВсе связаны общими множителями Сложная
загружаем Python…
Вход
values=[10, 21, 14, 9, 11]
Ожидается
4

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 99 тестов на сервере, включая скрытые.