печать четных чисел со списками и скобками - PullRequest
0 голосов
/ 12 ноября 2018

Когда я по какой-то причине запускаю следующий код, он говорит, что разрыв неправильный, но работает, если я удаляю разрыв.

Может кто-нибудь помочь мне понять, почему?

composites = []
for i in range(101):
    for j in range(i):
        if (i % j) == 0:
            composites.append(i)
            break
print("Composites: ", *composites)

Ответы [ 2 ]

0 голосов
/ 12 ноября 2018

В приведенном примере кода вместо ошибки прерывания возникло ZeroDivisionError. Проблема со вторым диапазоном, так как функция по модулю не может быть выполнена с 0.

Поскольку составные числа не являются простыми числами, проверка коэффициентов должна начинаться с 2. Изменение второй функции диапазона на range(2, i) должно решить эту проблему.

composites = []
for i in range(101):
    for j in range(2, i):
        if (i % j) == 0:
            composites.append(i)
            break
print("Composites: ", *composites)
0 голосов
/ 12 ноября 2018

Этот код работает для меня в python 3.7, range (10) выдаст [0,1,2,3,4,5,6,7,8,9], что даст ZeroDivisionError: integer division or modulo by zero

composites = []
   for i in range(1,101):
      for j in range(2,i):
        if (i % j) == 0:
          composites.append(i)
          break
print("Composites: ", *composites)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...