0

Не могу понять, где косяк.

Вот рабочий алгоритм поиска наибольшего простого делителя в числе х def mdl(x): ho=[] for i in range(x): if x%(i+2)==0: ho.append(i+2) for n in range(x): for i in range(x): if n <= len(ho)-1: #Костыль if ho[n]%(i+2)==0 and i+2!=ho[n]: ho.remove(ho[n]) print(max(ho)) Но мне не нравится строка с пометкой #Костыль. Пытаюсь его убрать. def mdl(x): ho=[] for i in range(x): if x%(i+2)==0: ho.append(i+2) for n in range(len(ho)): for i in range(x): if ho[n]%(i+2)==0 and i+2!=ho[n]: #Зараза ho.remove(ho[n]) print(max(ho)) Выдает ошибку. В строке #Зараза переменная n превышает максимальный индекс списка ho. Бился полтора часа, но так и не понял, в чем дело.

2nd Aug 2020, 9:37 PM
27_07b
27_07b - avatar
4 ответов
0
Без понятия
3rd Aug 2020, 6:52 PM
Артём
0
В следующий раз пиши вопросы на английском тут почти все англичане
3rd Aug 2020, 6:53 PM
Артём
0
Продублировал на англ ещё вчера. Уже ответили
3rd Aug 2020, 6:55 PM
27_07b
27_07b - avatar
0
Понятно
3rd Aug 2020, 6:55 PM
Артём