Решето Эратосфена — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
(Новая страница: «'''Решето Эратосфена''' — алгоритм нахождения всех простых чисел до некото…»)
 
Строка 1: Строка 1:
'''Решето Эратосфена''' — алгоритм нахождения всех [[простое число|простых чисел]] до некоторого целого числа <tex>n</tex>, который приписывают древнегреческому математику Эратосфену Киренскому.
+
'''Решето Эратосфена''' — алгоритм нахождения всех [[простые числа|простых чисел]] до некоторого целого числа <tex>n</tex>, который приписывают древнегреческому математику Эратосфену Киренскому.
  
 
== Алгоритм ==
 
== Алгоритм ==

Версия 01:23, 12 октября 2010

Решето Эратосфена — алгоритм нахождения всех простых чисел до некоторого целого числа [math]n[/math], который приписывают древнегреческому математику Эратосфену Киренскому.

Алгоритм

Для нахождения всех простых чисел не больше заданного числа n, следуя методу Эратосфена, нужно выполнить следующие шаги:

  1. Выписать подряд все целые числа от двух до n (2, 3, 4, …, n).
  2. Пусть переменная p изначально равна двум — первому простому числу.
  3. Вычеркнуть из списка все числа от 2p до n, делящиеся на p (то есть, числа 2p, 3p, 4p, …)
  4. Найти первое не вычеркнутое число, большее чем p, и присвоить значению переменной p это число.
  5. Повторять шаги 3 и 4 до тех пор, пока p не станет больше, чем n
  6. Все не вычеркнутые числа в списке — простые числа.

На практике, алгоритм можно немного улучшить следующим образом. На шаге №3, числа можно вычеркивать, начиная сразу с числа [math]p^2[/math], потому что все составные числа меньше его уже будут вычеркнуты к этому времени. И, соответственно, останавливать алгоритм можно, когда [math]p^2[/math] станет больше, чем [math]n[/math].