работа с циклами python, что я сделал неправильно?
Дана последовательность целых положительных чисел. Определить количество простых чисел в последовательности.
N = [6, 4, 3, 20, 1, 30]
Pr = True
for i in range (0, len(N)):
for s in range (2, N[i]):
if N[i]%s == 0:
Pr = False
if Pr == True:
print('Число', N[i], 'Простое')
else:
print('Число', N[i], 'Непростое')
Ответы (1 шт):
Автор решения: Dmitry
→ Ссылка
Код может выглядеть вот так:
N = [6, 4, 3, 20, 1, 30]
for i in range (0, len(N)):
Pr = True
for s in range (2, N[i]):
if N[i]%s == 0:
Pr = False
if Pr:
print('Число', N[i], 'Простое')
else:
print('Число', N[i], 'Непростое')
В вашем коде основная ошибка: после того как переменная Pr получает значение False, больше никогда не изменится.
Результат работы кода:
Число 6 Непростое
Число 4 Непростое
Число 3 Простое
Число 20 Непростое
Число 1 Простое
Число 30 Непростое
И с той же логикой можно записать короче. Поскольку ifы простые их можно записать в одну строку:
N = [6, 4, 3, 20, 1, 30]
for i in range (0, len(N)):
Pr = True
for s in range (2, N[i]):
if N[i]%s == 0: Pr = False
res = 'простое' if Pr else 'не простое'
print(f"Число {N[i]} {res}")