Я прошу создать метод, который называется primes(x)
, который возвращает обратно список, содержащий все простые числа, начиная с 2 до x.Я не знаю, почему он не печатает 2 и 3
Вот мой код:
def primes(x):
i = 2
while(i < x):
j = 2
while(j <= (i/j)):
if not(i%j):
break
j = j + 1
if (j > i/j):
print(i, " is prime")
i = i + 1
Ожидается, что печатать:
>>> primes(50)
(2, ' is prime')
(3, ' is prime')
(5, ' is prime')
(7, ' is prime')
(11, ' is prime')
(13, ' is prime')
(17, ' is prime')
(19, ' is prime')
(23, ' is prime')
(29, ' is prime')
(31, ' is prime')
(37, ' is prime')
(41, ' is prime')
(43, ' is prime')
(47, ' is prime')
Однако не печатали 2 и 3, он только напечатал:
(5, ' is prime')
(7, ' is prime')
(11, ' is prime')
(13, ' is prime')
(17, ' is prime')
(19, ' is prime')
(23, ' is prime')
(29, ' is prime')
(31, ' is prime')
(37, ' is prime')
(41, ' is prime')
(43, ' is prime')
(47, ' is prime')
не ваша проблема, но замечания общего характера: вам не нужны скобки ('(' и ')') в Python при использовании операторов 'if' или' while'. 'if j> i/j:' и 'while i
Carpetsmoker