Как найти простые числа в паскале
Перейти к содержимому

Как найти простые числа в паскале

Turbo pascal и Простые числа

Простое число — натуральное число, которое делится только на единицу и само на себя. Ряд простых чисел: 2, 3, 5, 7, 11. Самым большим из известных простых чисел является 2 43112609 -1 (Число Мерсенна).

Как найти простые числа в Паскале?

Найти простые числа в паскале можно несколькими способами. Однако, все способы их нахождения основываются на переборе чисел. Самым простым алгоритмом нахождения простых чисел в pascal является организация цикла от 3 до заданного верхнего предела, где перебираемые числа делятся на все значения от 2 до N-1. Само собой, что единица и само число не считается в качестве делителя.

На языке Паскаль делать алгоритм быстрее можно если делить все числа от 2 до корня из N включительно

while (i mod j <> 0) and (j <= lim) do inc( j );

if (j > lim) then write( i,’ ‘ );

Усовершенствовать алгоритм можно посредством деления цифр, оканчивающихся только на 1, 3, 7 или 9. Числа, оканчивающиеся на 0 и 5 не могут являться простыми, также как и четные числа.

Простые числа — Нахождение всех простых чисел в Паскале от 1 до N

Простые числа и их квадраты — Вывод в Turbo Pascal простых чисел и их квадратов

Алгоритм нахождения простых чисел

Дело было давно, в университете, когда мы начали изучать язык программирования Pascal и домашним заданием стало создание алгоритма нахождения простых чисел.

Алгоритм был придуман и тутже реализован на изучаемом языке. Программа запрашивала у пользователя число N и искала все простые числа до N включительно. После первого успешного теста сразу же возникло непреодолимое желание ввести N = «много». Программа работала, но не так быстро как хотелось бы. Естественно, дело было в многочисленных проверках (порядка N*N/2), поэтому пришлось избавиться от лишних. В итоге получилось 5 похожих алгоритмов каждый из которых работал быстре предыдущего. Недавно захотелось их вспомнить и реализовать, но на этот раз на Python.

Итак, поехали. Первый алгоритм, ударивший в студенческую голову, продемонстрирован в Листинге 1.

# Листинг 1 # вводим N n = input(«n python»># Листинг 2 n = input(«n python»># Листинг 3 n = input(«n python»># Листинг 4 from math import sqrt n = input(«n python»># Листинг 5 from math import sqrt n = input(«n python»># Листинг 6 from math import sqrt n = input(«n python»># Листинг 7 n = input(«n python»># Листинг 8 n = input(«n v-portal» style=»display:none;»>

Pascal => нужна идея, которая поможет мне определить : простое число или нет.

Уже пару тысяч лет люди думают (как минимум, Евклид) над тем, как искать простые числа. И тебе еще нужны новые идеи? Гугл знает.

var i,n: integer;
prostoe: boolean;

Write(‘Введите число n=’); Readln(n);
if n<3 then goto skok;

for i:=2 to n-1 do
if (n mod i)=0 then prostoe:=false;

if prostoe then Writeln(‘Число простое’)
else Writeln(‘Число непростое’);
Readln;
End.

вот пример из делфи, если руки не кривые переделаешь на паскаль
procedure TForm1.Button1Click(Sender: TObject);
var
n: integer; // проверяемое число
d: integer; // делитель
r: integer; // остаток от деления n на d
begin
n := StrToInt(Edit1.text);
d := 2; // сначала будем делить на два
repeat
r := n mod d;
if r <> 0 then
d := d + 1;
until r = 0; // повторять пока не найдено число на n делится без остатка
label2.caption := Edit1.text;
if d = n then
label2.caption := label2.caption + ‘ — простое число. ‘
else
label2.caption := label2.caption + ‘ — обычное число. ‘;
end;
end.

]Маньячка [, программа не работает при вводе числа до 4-х =\

вот моя версия, кода правда много (учусь) :

program chislo;
var a : integer;
begin
writeln(‘Введите число’);
readln(a);
if (a<=3) then
begin
writeln(‘Простое число’);
readln;
end
else
begin
if (a mod 2 = 0) or (a mod 3 = 0) then
begin
writeln(‘Непростое число’);
readln;
end
else
begin
writeln (‘Простое число’);
readln;
end;
end;
end.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *