Итак, я знаю, если я
А) Пусть это будет продолжаться всю ночь с верхней границей 10 000 000 или B) Изменить диапазон n с шагом 500
Я могу получить ответ на этот вопросПроблема Эйлера. Но оба они чувствуют себя обманутыми / ленивыми. Я видел другие решения этого, опубликованные в C, но не в Python.
Моими основными областями оптимизации здесь, по-видимому, будет либо / или / оба более подходящие способы суммирования всех целых чисел до определенного значения, а также отсутствие постоянного создания и выгрузки Python списка факторов для каждого отдельного числапроверка. Прождав 20 минут с верхним пределом в миллион и программой не завершившей, я не доволен тем, как я это реализовал.
for x in range(1,SomeUpperBound):
n = sum(range(1,x))
factorize(n)
def factorize(n):
for i in range(1,n+1):
if n > 1 and n % i == 0 and i not in factors:
factors.append(i)
if len(factors) == 500:
print(n)
print(factors)
else: factors.clear()