Решето Эратосфена — различия между версиями
м (rollbackEdits.php mass rollback) |
|||
Строка 1: | Строка 1: | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
'''Решето Эратосфена''' — алгоритм нахождения всех [[простые числа|простых чисел]] до некоторого целого числа <tex>n</tex>, который приписывают древнегреческому математику Эратосфену Киренскому. | '''Решето Эратосфена''' — алгоритм нахождения всех [[простые числа|простых чисел]] до некоторого целого числа <tex>n</tex>, который приписывают древнегреческому математику Эратосфену Киренскому. | ||
Строка 25: | Строка 4: | ||
Для нахождения всех простых чисел не больше заданного числа ''n'', следуя методу Эратосфена, нужно выполнить следующие шаги: | Для нахождения всех простых чисел не больше заданного числа ''n'', следуя методу Эратосфена, нужно выполнить следующие шаги: | ||
# Выписать подряд все целые числа от двух до ''n'' (2, 3, 4, …, ''n''). | # Выписать подряд все целые числа от двух до ''n'' (2, 3, 4, …, ''n''). | ||
− | # Пусть переменная ''p'' изначально равна | + | # Пусть переменная ''p'' изначально равна двум — первому простому числу. |
# Вычеркнуть из списка все числа от 2''p'' до ''n'', делящиеся на ''p'' (то есть, числа 2''p'', 3''p'', 4''p'', …) | # Вычеркнуть из списка все числа от 2''p'' до ''n'', делящиеся на ''p'' (то есть, числа 2''p'', 3''p'', 4''p'', …) | ||
# Найти первое не вычеркнутое число, большее чем ''p'', и присвоить значению переменной ''p'' это число. | # Найти первое не вычеркнутое число, большее чем ''p'', и присвоить значению переменной ''p'' это число. | ||
# Повторять шаги 3 и 4 до тех пор, пока ''p'' не станет больше, чем ''n'' | # Повторять шаги 3 и 4 до тех пор, пока ''p'' не станет больше, чем ''n'' | ||
− | # Все не вычеркнутые числа в | + | # Все не вычеркнутые числа в списке — простые числа. |
На практике, алгоритм можно немного улучшить следующим образом. На шаге №3, числа можно вычеркивать, начиная сразу с числа <tex>p^2</tex>, потому что все составные числа меньше его уже будут вычеркнуты к этому времени. И, соответственно, останавливать алгоритм можно, когда <tex>p^2</tex> станет больше, чем <tex>n</tex>. | На практике, алгоритм можно немного улучшить следующим образом. На шаге №3, числа можно вычеркивать, начиная сразу с числа <tex>p^2</tex>, потому что все составные числа меньше его уже будут вычеркнуты к этому времени. И, соответственно, останавливать алгоритм можно, когда <tex>p^2</tex> станет больше, чем <tex>n</tex>. |
Текущая версия на 19:05, 4 сентября 2022
Решето Эратосфена — алгоритм нахождения всех простых чисел до некоторого целого числа , который приписывают древнегреческому математику Эратосфену Киренскому.
Алгоритм
Для нахождения всех простых чисел не больше заданного числа n, следуя методу Эратосфена, нужно выполнить следующие шаги:
- Выписать подряд все целые числа от двух до n (2, 3, 4, …, n).
- Пусть переменная p изначально равна двум — первому простому числу.
- Вычеркнуть из списка все числа от 2p до n, делящиеся на p (то есть, числа 2p, 3p, 4p, …)
- Найти первое не вычеркнутое число, большее чем p, и присвоить значению переменной p это число.
- Повторять шаги 3 и 4 до тех пор, пока p не станет больше, чем n
- Все не вычеркнутые числа в списке — простые числа.
На практике, алгоритм можно немного улучшить следующим образом. На шаге №3, числа можно вычеркивать, начиная сразу с числа
, потому что все составные числа меньше его уже будут вычеркнуты к этому времени. И, соответственно, останавливать алгоритм можно, когда станет больше, чем .