Выяснить, имеются ли в интервале числа-близнецы - 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.

Объяснение кода листинга программы

  1. Объявлены процедуры и переменные: — Procedure pch(a: integer; var b: boolean); — var i: integer; — var p1, p2: boolean; — var n, l, d: integer;
  2. В основной программе происходит следующее: — 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;
  3. Функция pch проверяет число на четность, начиная с числа n и до (2*n)-2. Если число делится на какое-либо число из этого диапазона без остатка, то оно не является числом-близнецом.
  4. В основной программе после цикла считывается значение переменной d. Если оно равно 0, то выводится сообщение Чисел близнецов нет. Если же значение переменной d равно 1, то выводится сообщение, содержащее два числа-близнеца.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4 из 5
Похожие ответы