Аватар
Информатика, опубликовано 2018-08-22 22:18:49 by Гость

Исправить ошибку Помогите исправить ошибку в программе Вот задание: Разработать программу поиска и печати всех чисел-близнецов, принадлежащих заданному диапазону [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.

Аватар
Ответ оставил Гость

Основную ошибку Вам уже указали. Можно программу немного сократить:
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

Вопрос
Не нашли ответа?
Если вы не нашли ответа на свой вопрос, или сомневаетесь в его правильности, то можете воспользоваться формой ниже и уточнить решение. Или воспользуйтесь формой поиска и найдите похожие ответы по предмету Информатика.