values длины n. Разрез после индекса i (где 0 ≤ i ≤ n - 2) делит массив на две непустые части: элементы с индексами 0..i и все остальные.
Разрез называется чистым, если произведение левой части и произведение правой части взаимно просты, то есть их наибольший общий делитель равен 1.
Верните наименьший индекс i, после которого разрез чистый, или -1, если чистого разреза нет.
Произведения могут быть огромными — перемножать числа напрямую не стоит.values=[6, 10, 7, 21, 11] → 3
После индекса 0 мешает общий делитель 2 (6 и 10), после индекса 1 — делитель 3 (60 и 21), после индекса 2 — делители 3 и 7. После индекса 3 слева 6·10·7·21 = 8820, справа 11 — общих делителей нет, ответ 3.
values=[4, 9, 2, 3] → -1
Левая часть всегда содержит 4 (делитель 2), а пока справа есть 2 — разрез плохой; после индекса 2 справа остаётся 3, а слева 9 — тоже общий делитель 3. Хорошего разреза нет.
values=[1, 1] → 0
1 и 1 взаимно просты, поэтому подходит уже разрез после индекса 0.
values=[6, 10, 7, 21, 11]
3
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 106 тестов на сервере, включая скрытые.