• Предмет: Алгебра
  • Автор: oisaikina7
  • Вопрос задан 6 лет назад

Воспользовавшись решетом Эратосфена, найдите все простые числа от 40 до 60. Введите их в произвольном порядке.


tamaranedzumi: 41, 43, 47, 53, 59 вроде
Hopstill: Спасибо

Ответы

Ответ дал: Abloud
4

Ответ:

n1 = int(input("вывод простых чисел от числа "))

n2 = int(input("до числа "))

a = [0] * n2 # создание массива с n2 количеством элементов

for i in range(n2): # заполнение массива ...

   a[i] = i # значениями от 0 до n-1

# вторым элементом является единица, которую не считают простым числом

a[1] = 0

m = 2 # замена на 0 начинается с 3-го элемента (первые два уже нули)

while m < n2: # перебор всех элементов до заданного числа

   if a[m] != 0: # если он не равен нулю, то

       j = m * 2 # увеличить в два раза (текущий элемент простое число)

       if a[m]>n1:

           print (a[m])

       while j < n2:

           a[j] = 0 # заменить на 0

           j = j + m # перейти в позицию на m больше

   m += 1

Объяснение:

Вводим с клавиатуры, начиная с которого числа нам нужно будет выводить простые числа. В нашем случае - 40

Вводим до которого значения следует искать простые числа, в нашем случае - до 60.

На печати получим 5 простых чисел в заданном диапазоне.

Это не самое изящное решение. К тому же я не понял, что значит "введите их в произвольном порядке" - куда ввести?

Программа ищет простые числа с помощью "решета Эратосфена" и выводит их на печать.  

Приложения:
Вас заинтересует