Может ли кто-нибудь помочь мне и сказать мне, почему это не работает? Цель состоит в том, чтобы подсчитать количество простых чисел, полученных данным многочленом для входных данных n в указанном диапазоне [a,b]:
def count_primes(poly, a, b):
primes = 0
if b >= a:
for n in range(a, b):
result = poly(n)
if result > 1:
for i in range(2, result):
if (result % i) == 0:
break
else:
primes += 1
else:
break
return primes
def poly(n):
return n**2 + n + 41
print(count_primes(poly, 0, 39))
В этом случае результат должен возвращать 40.
[2] Проблема Решение Шаг-1. Возьмите число, которое нужно проверить, и сохраните его в переменной. Шаг 2. Присвойте переменной count значение 0. Шаг 3. Пусть цикл for находится в диапазоне от 2 до половины числа (исключая 1 и само число). Шаг-4. Затем найдите количество делителей с помощью оператора if и каждый раз увеличивайте переменную count. Шаг-5. Если число делителей меньше или равно 0, то число простое. Шаг-6. Распечатайте окончательный результат. Шаг-7. Выход.