Почему мой код сильно избыточен?

Всем привет, хочу попросить Вас объяснить мне в чем у меня заключается ошибки и как его можно будет улучшать этот код. Вопрос был в "Задача про зерна на шахматной доске на Python. Написать цикл, который бы выводил на печать порядковый номер клетки и количество зёрен на ней до тех пор, пока количество зёрен на одной клетке не превысит 100000. Используя простые циклы. While, for. Range. Помогите, пожалуйста."

Вот код:

from math import *

sum = 0
for n in range(1, 65):
  m = int(pow(2, n - 1))
  print("%2d: %d" % (n, m))
  if sum < 100000:
    sum = sum + m
  if sum > 100000:
    break
print("sum = %d" % sum)

Ответы (1 шт):

Автор решения: MBo

А если так?

cell = 1
grains = 1
while grains < 10000:
    print("%2d: %d" % (cell, grains))
    grains *= 2
    cell += 1

Использование степени pow здесь не требуется, приведение результата к int вообще ни к чему. Два сравнения (причём не той величины, что нужна) - излишни.

Набор суммы по условию не требуется. Кстати, использование названия встроенной функции sum нехорошо.

→ Ссылка