Вывести все простые числа из некоторого диапазона с использованием алгоритма «Решето Эратосфена».
Простое число — это натуральное число, имеющее ровно 2 делителя: 1 и само число. Например, 2, 3, 5, 7, 11.
Для быстрого поиска простых чисел будем использовать алгоритм «Решето Эратосфена», заключающийся в просеивании последовательности чисел так, что составные числа последовательности вычеркиваются.
Идея алгоритма
В упорядоченной последовательности натуральных чисел возьмем число k, равное 2 – первому простому числу, и вычеркнем из последовательности все числа, кратные k: 2k, 3k, 4k, …, ik (ik≤N). Далее, в качестве k возьмем следующее за 2 число – это 3, и вычеркнем все кратные 3 числа (6, 9, 12, …).
Слово «вычеркнем» следует понимать так: сделаем число нулем.
Как будем решать задачу
Последовательность натуральных чисел сохраним в массиве. Номера ячеек отождествим с числами. Ячейки с номерами 0 и 1 должны быть равны 0 (0 и 1 не являются простыми числами).
#2 PascalABC.NET — SCHOOL — Простые числа. Решето Эратосфена
Внешний цикл запустим по k от 2 до N.
Если ячейка a[k] хранит число, не равное 0, то возьмем j=k и во внутреннем цикле пока j
Приведем код программы на языке Паскаль
var a:array of integer;
for k:=0 to n do a[k]:=k;
Источник: reshupascal.blogspot.com
Программа которая находит простые числа паскаль
Новое в библиотеке
- Проблемы изучения математики в 3 кла.
- Проверить будет ли число простым — P.
- Сумма цифр числа в Python
- Пузырьковая сортировка в Python
- Алгоритм Эвклида для НОД в Python
- Все материалы библиотеки
Лучшее на сайте
- Онлайн-решебник задач
- MathPad -математический блокнот
- LaTeX+MarkDown редактор формул
- Универсальный калькулятор
- Числовой калькулятор
- Сфоткай и добавь свою задачу
- Решения задач из Сканави
- Характеристика студента онлайн
- Диаграммы и графики онлайн
- Конструктор программ на Паскале
- Самые популярные материалы
- Доска почета: лучшие пользователи
![]()
Анекдоты и фразы
«Я счастлив по умолчанию. Пожалуйста, не лезьте в настройки. «
Источник: primat.org
Программа которая находит простые числа паскаль
: 8
Нахождение простых чисел массива — Pascal ABC
Найти местонахождение простых чисел массива Х[1..n]. Создать из этих значений новый массив С [1..m].
Пользователь
: 18
function prost(i:integer):boolean; var j:integer; begin j:=2; while (i mod j <> 0) do inc(j); if i=j then prost:=true else prost:=false end; var a,b:array[1..100] of integer; m,n,i:integer; begin randomize; write(‘N = ‘); n:=ReadlnInteger; writeln(‘Массив А’); m:=0; for i:=1 to n do begin a[i]:=random(51); write(a[i]:3); if prost(a[i]) then begin m:=m+1; b[m]:=a[i]; end; end; writeln; if m=0 then write(‘Простых чисел нет’) else begin writeln(‘Простые числа’); for i:=1 to m do write(b[i]:3); end; end.
Здесь должна быть подпись. Но чего-то лень придумывать(
Как найти простые числа от 2 до 100?
Последний раз редактировалось Hitoku; 06.03.2017 в 05:17 .
Форумчанин Подтвердите свой е-майл
: 420
Сколько кода)
function IsPrime(x: integer) := Range(2, Round(x.Sqrt)).All(i -> x mod i<>0); begin var n:=ReadInteger(‘N = ‘); var x:=ArrRandomInteger(n, 0, 1000); writeln(‘Massive X:’); x.Println; writeln(‘Massive C:’); var c:=x.Where(IsPrime).Println; end.
Если ничто другое не помогает, прочтите, наконец, инструкцию! Аксиома Кана
Источник: www.programmersforum.ru