Сергей Шмагин
Сергей Шмагин

Нахождение простых чисел в диапозоне от N1 до N2

Простые числа - это – это числа которые делятся на 1 и на самих себя без остатка
У меня почему то выводит все числа.
Вот алгоритм и интерфейс.

{$R *.dfm}

//проверяет простые ли числа

procedure prover(N:integer; var ok:Boolean);
var d,r:integer;
begin
d:=2;
repeat
r:=N mod d;
if r<>0
then d:=d+1;
until r=0;
ok:=true;
end;

//вывод простых чисел

procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
st:string;
yes:boolean;
begin
prover(StrToInt(Edit1.Text), yes );
st:='';
for i:=StrToInt(Edit1.Text) to StrToInt(Edit2.Text) do
if yes=true then
st:=st+inttostr(i)+#13;
label5.caption:=st;
end;
end.



Да и вопрос в том, чтобы выводились только простые числа, а не все подряд?

Нужно чтобы использовалась либо процедура либо функция. Я выбрал процедуру, так как решение может реализовываться как процедурой так и функцией.

КБ
Кирилл Белокуров

{$R *.dfm}
//проверяет простые ли числа
procedure prover(N:integer; var ok:Boolean);
var d: integer;
begin
d := 2;
ok := true;
repeat
if (N < 2) or (N > 3) and (N mod d = 0) then
ok := false;
d := d + 1;
until not ok or (d >= N);
end;

//вывод простых чисел
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
yes:boolean;
begin
Memo1.Clear;
for i:=StrToInt(Edit1.Text) to StrToInt(Edit2.Text) do
begin
prover(i, yes);
if yes then
Memo1.Lines.Add(inttostr(i));
end;
end;



P.S. Зачем такой крупный шрифт?

Ai
Aika

procedure prover(N:integer; var ok:Boolean);
var d,r:integer;
begin
d:=2;
ok:=true;
repeat
r:=N mod d;
if r<>0
then d:=d+1 else ok:=false;
until r=0;
end;

Похожие вопросы
помогите написать простую программу. С++ для нахождения НОД чисел.
составить программу для нахождения простых чисел до заданного K
нахождение из 10 чисел серидину способом метод половины деления
Дан массив целых чисел, заданных случайным образом из диапозона от 29 до 35 и число Х из этого же диапозона. Длина мас
Дана матрица A(n,n). Найти сумму чисел находящихся в диапозоне [-2,5] и количество нечетных чисел в матрице.
Каков возможный диапозон чисел если для хранения зарезервировано 2 байта? как подсчитать этот диапозон?
Нахождение простых чисел (pascal)
Как в массиве из чисел целого типа зная диапозон вычислить сумму отрицательных чисел?
помогите!) составить блок-схему нахождения НОД двух чисел
-N1*cos45+N2*cos15=0 N1*cos45+N2*cos75-60=0 найти N1 и N2