Решето Сундарама

Материал из testwiki
Версия от 19:20, 28 февраля 2024; imported>1kovand1 (Преамбула: очевидная опечатка)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигации Перейти к поиску

Решето Сундара́ма — детерминированный алгоритм нахождения всех простых чисел до некоторого целого числа n. Разработан индийским студентом Сундарамом в 1934 году.

Пошаговая демонстрация работы алгоритма для N=100

Алгоритм предусматривает исключение из ряда натуральных чисел от 1 до N всех чисел вида:

i+j+2ij,

где индексы ij пробегают все натуральные значения, для которых i+j+2ijN, а именно значения i=1,2,,2N+112 и j=i,i+1,,Ni2i+1. Затем каждое из оставшихся чисел умножается на 2 и увеличивается на 1. Полученная в результате последовательность представляет собой все простые числа в отрезке [3,2N+1].

Обоснование

Алгоритм работает с нечётными натуральными числами большими единицы, представленными в виде 2m+1, где m является натуральным числом.

Если число 2m+1 является составным, то по определению оно может быть представлено в виде произведения двух нечётных чисел, больших единицы, то есть:

2m+1=(2i+1)(2j+1), где i и j — натуральные числа. Раскрывая скобки, получаем, что
2m+1=4ij+2i+2j+1, или
2m=4ij+2i+2j, из чего следует, что
m=2ij+i+j.

Таким образом, если из ряда натуральных чисел исключить все числа вида 2ij+i+j (1ij), то для каждого из оставшихся чисел m число 2m+1 обязано быть простым. И, наоборот, если число 2m+1 является простым, то число m невозможно представить в виде 2ij+i+j и, таким образом, m не будет исключено в процессе работы алгоритма.

См. также

Ссылки

Шаблон:Викиучебник