Помогите решить задачу?
Вывести список простых чисела в диапазоне d. Диапазон d вводит пользователь
Ответы (2 шт):
диапазон чисел можно задать в 1 строчку, например так:
left, right = map(int, input().split())пройти по диапазону можно с использованием
forиrange:for value in range(left, right + 1):проверить, что число является простым можно через деление на него всех чисел в диапазоне от
2доsqrt(value)и проверкой остатка от деления - если остаток равен 0, то число не простоеif value % div == 0
так что логика проверки такая:
устанавливаем флаг
is_prime = True- проверяемое число простоепроверяем на делимость и если число делится без остатка устанавливаем флаг
is_prime = Falseи прерываем цикл черезbreak
Попробуйте так:
# Проверка простое ли число
def IsPrime(n):
if n % 2 == 0:
return n == 2
d = 3
while d * d <= n and n % d != 0:
d += 2
return d * d > n # Вернет True если простое
#Получаем диапазон
d1 = int(input("Начало:"))
d2 = int(input("Конец:"))
#Перебор в диапазоне
for i in range(d1, d2 + 1):
if IsPrime(i):
print(f"{i} - простое")
Имхо тут главная сложность что есть простое число (сам гуглил...) остальное думаю недолжно быть проблемой.