» Главная
eXcode.ru » Статьи » Алгоритмы » Арифметика
» Новости
» Опросы
» Файлы
» Журнал



Пользователей: 0
Гостей: 6







Решето Эратосфена для нахождения простых чисел




В последовательности чисел 2,3, ... , n последовательно вычеркиваем каждое второе число после 2. Первое незачеркнутое число простое (3). Далее вычеркиваем каждое третье число после 3. Первое незачеркнутое число простое (5). Затем вычеркиваем каждое пятое число после 5 и т.д. до тех пор, пока не дойдем до числа, большего корня из n (известно, что если целое положительное число n неравное 1 не делится ни на одно положительное простое число, не большее корня из n то оно простое). Все числа, которые остаются, простые. Такой метод нахождения простых чисел называется решетом Эратосфена.

Процедура заполняет массив P простыми числами меньшими n, элемент массива является последним, если следующий за ним элемент равен 0.

Моя реализация алгоритма на Паскале:

const N=10; //вместо 10 запишите число - верхнюю границу поиска

var
a : array [1..N] of boolean;
x,y : integer;

begin
a[1] := false;
for x:=2 to N do a[x] := true;

for x:= 2 to N div 2 do
for y:= 2 to N div x do
a[x*y] := false;

for x:= 1 to N do
if a[x] then write(x,); //выводим данные в строчку
readln;
end.
К началу статьи





Добавил: LedWormДата публикации: 2005-05-30 22:35:44
Рейтинг статьи:2.62 [Голосов 8]Кол-во просмотров: 16883

Комментарии читателей

Всего комментариев: 19

2011-11-03 00:59:11
VawItessdwEda
Гражданство Коста-Рики - оформление <b><a href=http://costalive.ru>Гражданство Costa-Rica </a></b> двойного гражданства или второй паспорт Коста-Рики может дать Вам расширенные возможности для безвизового перемещения по всем странам Евросоюза (ЕС), странам Азии – Корея и Япония, Латинской Америки, Новой Зеландии и ЮАР.
Согласно официальной процедуре гражданам Коста-Рики (как страны – бывшей колонии Испании) предоставляется ПМЖ Испании на срок в 4-5 месяцев, а затем спустя 2 года и гражданство Испании, т.е. у Вас есть возможность <b><a href=http://costalive.ru>Гражданство Коста Рика </a></b> так же получить и паспорт Испании – Евросоюза

2011-04-26 09:03:31
Катя
а можно подобный алгоритм использовать для не отсортированного одномерного массива?

2010-12-05 13:34:53
Георгий
И еще такой вопрос: В данном варианте программы установка оператора if a[x]=true then begin {Внутри второй цикл for} end- поможет работать быстрее??? Ведь мы лишний раз проверяем разве нет? То есть, вот начался первый цикл x=2 узнали что все числа кратные двум непростые ). Затем с x=3 тоже норм, а зачем нам потом еще раз проверять при x=4 ведь ежику понятно что все которые кратны четверке кратны и двойке то есть мы просто лишний раз присвоим то же значение false тем числам которые уже и так непростые, как выяснилось. Если то что написано мною правильно, то вопрос такой поможет ли это сократить время работы программы? И значительно или нет? То есть вообще как это определить? Потому что я не знаю, уходит ли на операцию присваивания того же самого значения память и время достойные внимания?

2010-12-05 13:18:24
Георгий
И вот еще вопрос: что если мне дали подобную задачу (мне нужно решето Эратосфена, потому что, вероятно, быстрее ниче не придумать) но реализация такого варианта скажем для n=350000 не подходит, возможно ли избавиться от данной проблемы? Интересует для типа longint-то есть не выходя за пределы 3 миллиардов. Помогите пожалуйста. Потому что мой вариант, который без этого решета пишет ответ на 2 миллионах уже полминуты.

2010-12-05 13:07:30
Георгий
Число 1 не является простым числом так как, по определению простых чисел-это числа имеющие ровно два делителя единицу и само себя, а у единицы они оба совпадают и поэтому, чтобы каждый раз не описывать случай с 1 отдельно (при док-ве теорем например) решили, что 1 не является простым числом. Ради удобства.

2010-11-26 20:41:31
Tahdem
За умение реализовать кртаткий алгоритм +,но алгоритм сам по себе содержет лишние проверки

2010-06-28 08:48:14
milky
мда....:*( сначала бы следовало прочитать информацию об алгоритме...:*(

2010-03-19 13:39:43
ЮЛЯША.
Человеки давайте не про это Р...........Э........ вы лучше подскажите как мне зарегистрироваться в агенте!!!!!!???? PLIS!!!!!!!!!!

2010-03-19 13:36:00
ЮЛЯША.
Ого вот это РЕШЕТО ЭРОТОСФЕНА!!!!!!!! афигеть люди это трудно????!!!!

2009-11-10 06:45:30
C++
Приблизительно так, кое где ; поставить ... я торопился пропустил или поставил "," вместо ";" .... Но выглядеть это будет так на си
Ваше имя: *
Текст записи: *
Имя:

Пароль:



Регистрация

Каким почтовым клиентом вы пользуетесь?
Мышью
51% (83)
MS Outlook / Outlook Express
15% (25)
Eudora
0% (0)
Thunderbird
7% (12)
Веб-интерфейсом
20% (33)
Почта России
6% (9)

Проголосовало: 162
Умирает Питер Нортон. На том свете ему за многочисленные заслуги перед компьтерщиками всего мира предлагают выбрать место жительства - Рай или Ад. Походил Нортон по Раю, посмотрел - Ангелы на лирах играют, нектар пьют - скучно. Пошел на Ад посмотреть. Заходит, а там Билл Гейтс за компом сидит - клавиши топчет. Глянул на это дело Питер и пулей к Богу: "Все - говорит - хочу в Аду жить!". Бог начинает выяснять причину такого выбора, Нортон объясняет про скуку в Раю и что в Аду Билл Гейтс за компом развлекается. На что Бог отвечает Нортону: - Он не развлекается - это у него Адское наказание. - Какое ?! - Он пишет MicrosoftOffice, чтоб работал по OS/2 на ЕС-1840.
Рейтинг: 3/10 (2)
Посмотреть все анекдоты

 
eXcode.ru » Статьи » Алгоритмы » Арифметика