Найти - Пользователи
Полная версия: максимальный интервал for или range
Начало » Python для новичков » максимальный интервал for или range
1
nokados
for i in range(b,int(n*0.5)+1,1):
(где n - вводимое число, b - наименьший простой множитель числа n)
при вводе числа
1569823637
выдает ошибку MemoryError

Если использовать интервал поменьше, а именно
for i in range(b,int(n**0.5)+100,1):
То все работает - Почему?
bismigalis

Почему?

потому что интервал поменьше и памяти хватает

FishHook
Потому что range создает список. Не генератор/иттератор, а прям сразу список заполненный значениями. У Вашего компьютера не хватает оперативы, чтобы этот список держать в мозгах.
Выход, для второго питона
for i in xrange(b, int(n * 0.5) + 1, 1):
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB