25 lines
1.4 KiB
Markdown
25 lines
1.4 KiB
Markdown
# Решето Эратосфена
|
||
|
||
[importance 3]
|
||
|
||
Целое число, большее `1`, называется *простым*, если оно не делится нацело ни на какое другое, кроме себя и `1`.
|
||
|
||
Древний алгоритм "Решето Эратосфена" для поиска всех простых чисел до `n` выглядит так:
|
||
|
||
<ol>
|
||
<li>Создать список последовательных чисел от `2` до `n`: `2, 3, 4, ..., n`.</li>
|
||
<li>Пусть `p=2`, это первое простое число.</li>
|
||
<li>Зачеркнуть все последующие числа в списке с разницей в `p`, т.е. `2*p, 3*p, 4*p` и т.д. В случае `p=2` это будут `4,6,8...`.</li>
|
||
<li>Поменять значение `p` на первое не зачеркнутое число после `p`.</li>
|
||
<li>Повторить шаги 3-4 пока <code>p<sup>2</sup> < n</code>.</li>
|
||
<li>Все оставшиеся не зачеркнутыми числа -- простые.</li>
|
||
</ol>
|
||
|
||
Посмотрите также [анимацию алгоритма](sieve.gif).
|
||
|
||
Реализуйте "Решето Эратосфена" в JavaScript, используя массив.
|
||
|
||
Найдите все простые числа до `100` и выведите их сумму.
|
||
|
||
|
||
|