while i <= n:
# Если значение ячейки до этого не было обнулено,
# в этой ячейке содержится простое число.
if a[i] != 0:
# первое кратное ему будет в два раза больше
j = i + i
while j <= n:
# это число составное, поэтому заменяем его нулем
a[j] = 0
# переходим к следующему числу, которое кратно i (оно на i больше)
j = j + i
i += 1
# Превращая список во множество,
# избавляемся от всех нулей кроме одного.
a = set(a)
# удаляем ноль
a.remove(0)
print(a)
Пример выполнения:
23
{2, 3, 5, 7, 11, 13, 17, 19, 23}
Иллюстрация работы алгоритма:
Блок-схема алгоритма:
3. Задание на лабораторную работу
Подготовить самостоятельную работу на тему «Алгоритм Эратосфена»
Подготовить презентацию
В самостоятельной работе привести примеры программ алгоритма Эратосфена
4. Содержание отчета
В отчете следует указать:
Название работы.
Цель работы.
Теоретическая часть.
Выполненное задание.
Заключение (выводы).
Литература.
Контрольные вопросы
Do'stlaringiz bilan baham: |