Ctrl K

Все связаны общими множителями

Сложная
Дан массив целых чисел values. Из позиции i можно перейти в позицию j (i ≠ j), если у values[i] и values[j] есть общий делитель больше 1. Верните True, если из любой позиции массива можно добраться до любой другой — за один или несколько переходов, и False иначе. Массив из одного элемента считается связанным.
Пример 1
values=[10, 21, 35] → True

10 и 35 делятся на 5, 21 и 35 — на 7. Из 10 в 21 можно пройти через 35, так что связаны все.

Пример 2
values=[4, 8, 9, 27] → False

Получаются две несвязанные группы: {4, 8} с делителем 2 и {9, 27} с делителем 3.

Пример 3
values=[6, 1] → False

У единицы ни с кем нет общего делителя больше 1, поэтому до неё не добраться.

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

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