Исправить ошибку
Помогите исправить ошибку в программе
Вот задание: Разработать программу поиска и печати всех чисел-близнецов, принадлежащих заданному диапазону [N,M ].
Вот программа:
program yyy;
function prost(var x:integer):boolean;
var
k,i:integer;
t:boolean;
begin
t:=true;
k:=0;
for i:=1 to x do
begin
if x mod i=0
then k:=k+1;
end;
if k=2 then t:=true
else t:=false;
prost:=t
end;
var
n,m,i:integer;
begin
writeln('1');
readln(n);
writeln('2');
readln(m);
for i:=n to m-1 do
begin
if prost(i) and prost(i+2)
then writeln(i , (i+2));
end;
end.
Answers & Comments
Verified answer
Основную ошибку Вам уже указали. Можно программу немного сократить:program yyy;
function prost(x:integer):boolean;
var k,i:integer;
begin
k:=0;
for i:=2 to trunc(sqrt(x)) do
if x mod i = 0 then k:=k+1;
prost:=k=0
end;
var n,m,i:integer;
begin
write('n='); readln(n);
write('m='); readln(m);
for i:=n to m-2 do
if prost(i) and prost(i+2)
then writeln(i,' ', (i+2));
end.
Пример:
n=1
m=150
1 3
3 5
5 7
11 13
17 19
29 31
41 43
59 61
71 73
101 103
107 109
137 139