Помогите решить задачу?

Вывести список простых чисела в диапазоне d. Диапазон d вводит пользователь


Ответы (2 шт):

Автор решения: Zhihar
  1. диапазон чисел можно задать в 1 строчку, например так:

     left, right = map(int, input().split())
    
  2. пройти по диапазону можно с использованием for и range:

     for value in range(left, right + 1):
    
  3. проверить, что число является простым можно через деление на него всех чисел в диапазоне от 2 до sqrt(value) и проверкой остатка от деления - если остаток равен 0, то число не простое

     if value % div == 0
    

так что логика проверки такая:

  1. устанавливаем флаг is_prime = True - проверяемое число простое

  2. проверяем на делимость и если число делится без остатка устанавливаем флаг is_prime = False и прерываем цикл через break

→ Ссылка
Автор решения: Kers

Попробуйте так:

# Проверка простое ли число
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} - простое")

Имхо тут главная сложность что есть простое число (сам гуглил...) остальное думаю недолжно быть проблемой.

→ Ссылка