Форум » Массивы, сортировка, работа с файлами » (№ 5456) (Е. Джобс) » Ответить

(№ 5456) (Е. Джобс)

Ar3turrr: Программа слишком долгая, не нашёл варианта оптимизировать процесс нахождения делителей. Как можно это оптимизировать? [pre2]import math LIST = [] p = v = 0 for i in range(10 ** 6 + 1, 10 ** 7): for k in range(1, i + 1): if i % k == 0: LIST.append(k) p = sum(LIST) v = math.prod(LIST) if p % 2 != 0 and v % 2 != 0 and len(LIST) > 40: print(i, len(LIST)) LIST.clear()[/pre2]

Ответов - 1

Поляков: Ищите делители сразу парами, перебор до квадратного корня. Посмотрите решения 25-х задач из основного сборника: kpolyakov.spb.ru/school/ege.htm.



полная версия страницы