Сито Сундарама - Sieve of Sundaram
В математика, то сито Сундарама это простой детерминированный алгоритм для поиска всех простые числа до указанного целого числа. Это было обнаружено Индийский математик г-н С. П. Сундарам в 1934 году.[1][2]
Алгоритм
Начните со списка целых чисел от 1 до п. Из этого списка удалите все числа формы я + j + 2ij куда:
Остальные числа удваиваются и увеличиваются на единицу, давая список нечетных простых чисел (то есть всех простых чисел, кроме 2) ниже. 2п + 1.
Сито Сундарама отсеивает составные числа так же, как сито Эратосфена есть, но четные числа не рассматриваются; работа по «вычеркиванию» числа, кратного 2, выполняется последним шагом «двойное и приращение». Всякий раз, когда метод Эратосфена перечеркивал k различные кратные простого числа , Метод Сундарама зачеркивает за .
Правильность
Если мы начнем с целых чисел от 1 к п, окончательный список содержит только нечетные целые числа из 3 к . Из этого окончательного списка были исключены некоторые нечетные целые числа; мы должны показать, что это именно составной нечетные целые числа меньше чем .
Позволять q быть нечетным целым числом в форме . Потом, q исключен если и только если k имеет форму , то есть . Тогда у нас есть:
Итак, нечетное целое число исключается из окончательного списка тогда и только тогда, когда оно имеет факторизацию вида - то есть, если он имеет нетривиальный нечетный множитель. Следовательно, список должен состоять ровно из набора нечетных основной числа меньше или равны .
def sieve_of_Sundaram(п): "" "Решето Сундарама - это простой детерминированный алгоритм для поиска всех простых чисел до указанного целого числа." "" k = (п - 2) // 2 целые_список = [Истинный] * (k + 1) за я в классифицировать(1, k + 1): j = я пока я + j + 2 * я * j <= k: целые_список[я + j + 2 * я * j] = Ложь j += 1 если п > 2: Распечатать(2, конец=' ') за я в классифицировать(1, k + 1): если целые_список[я]: Распечатать(2 * я + 1, конец=' ')
Смотрите также
Рекомендации
- ^ В. Рамасвами Айяр (1934). «Сито Сундарама для простых чисел». Студент-математик. 2 (2): 73. ISSN 0025-5742.
- ^ Г. (1941). «Куриоза 81. Новое сито для простых чисел». Scripta Mathematica. 8 (3): 164.
- Огилви, К. Стэнли; Джон Т. Андерсон (1988). Экскурсии по теории чисел. Dover Publications, 1988 (перепечатка из Oxford University Press, 1966). С. 98–100, 158. ISBN 0-486-25778-9.
- Хонсбергер, Росс (1970). Изобретательность в математике. Новая математическая библиотека №23. Математическая ассоциация Америки. стр.75. ISBN 0-394-70923-3.
- Новое «сито» для простых чисел[постоянная мертвая ссылка ], отрывок из Кордемский, Борис А. (1974). Köpfchen, Köpfchen! Mathematik zur Unterhaltung. MSB Nr. 78. Urania Verlag. п. 200. (перевод русской книги Кордемский, Борис Анастасьевич (1958). Математическая смекалка. М .: ГИФМЛ.)
- Мовшовиц-Хадар, Н. (1988). «Стимулирующие представления теорем, за которыми следуют отзывчивые доказательства». Для изучения математики. 8 (2): 12–19.
- Феррандо, Элизабетта (2005). Отводящие процессы в предположении и доказывании (PDF) (Кандидат наук). Университет Пердью. С. 70–72.
- Бакстер, Эндрю. "Сито Сундарама". Темы из истории криптографии. Математический факультет МУ.