Выяснить, имеются ли в интервале числа-близнецы - Free Pascal
Формулировка задачи:
Дано натуральное число n.Выяснить,имеются ли среди чисел n,n+1,..2n близнецы,т.е простые числа,разность между которыми равна двум.(определить процедуру,позволяющую распозновать простые числа). Она запускается но при вводе чисел вылетает.Помогите исправить
Program 53;
uses crt;
var d:real;p:boolean;
n,l:integer;
procedure pch(a:integer;var b:boolean);
var i:integer;
begin
b:=true;
for i:=2 to (a div 2) do if a mod i=0 then b:=false;
end;
Begin
clrscr;
write('Введите натуральное число '); readln(n);
d:=n;
for l:=n+1 to (2*n) do begin
pch(l,p);
d:=d-l;
if d=2 then if p then writeln(' ',l);
end;
readkey;
End.Решение задачи: «Выяснить, имеются ли в интервале числа-близнецы»
textual
Листинг программы
Program pr53;
uses crt;
procedure pch(a:integer;var b:boolean);
var i:integer;
begin
b:=true;
for i:=2 to (a div 2) do
if a mod i=0 then b:=false;
end;
var p1,p2:boolean;
n,l,d:integer;
Begin
clrscr;
write('Введите натуральное число ');
readln(n);
d:=0;
for l:=n+1 to (2*n)-2 do
begin
pch(l,p1);
pch(l+2,p2);
if p1 and p2 then
begin
writeln(l,' ',l+2);
d:=1;
end;
end;
if d=0 then write('Чисел близнецов нет');
readkey;
end.
Объяснение кода листинга программы
- Объявлены процедуры и переменные: — Procedure pch(a: integer; var b: boolean); — var i: integer; — var p1, p2: boolean; — var n, l, d: integer;
- В основной программе происходит следующее: — clrscr; — readln(n); — d:=0; — for l:=n+1 to (2*n)-2 do — begin — pch(l,p1); — pch(l+2,p2); — if p1 and p2 then — begin — writeln(l,' ',l+2); — d:=1; — end; — end; — if d=0 then write('Чисел близнецов нет'); — readkey;
- Функция pch проверяет число на четность, начиная с числа n и до (2*n)-2. Если число делится на какое-либо число из этого диапазона без остатка, то оно не является числом-близнецом.
- В основной программе после цикла считывается значение переменной d. Если оно равно 0, то выводится сообщение
Чисел близнецов нет. Если же значение переменной d равно 1, то выводится сообщение, содержащее два числа-близнеца.