问题是为任何给定的输入N打印一系列连续的3个素数(对于N = 3,输出必须为:3 5 7)该代码没有语法错误,但是逻辑上有缺陷,因为IDE将不会处理我的代码。
program prime;
uses crt;
var
n : longint;
i : longint;
counter : longint;
nPrime : boolean;
begin
write('Input a prime number N : ')
readln(n);
write(n);
nPrime := true;
counter := 0;
repeat
begin
for i := 2 to (n) do
begin
if (n+1) mod i = 0 then
begin
nPrime := false;
break;
end;
end;
if nPrime = true then
begin
writeln(n+1);
counter := counter + 1
end;
n := n + 1;
end;
until counter = 2;
readln;
end.
IDE实际上处理程序的前13行,因为它给出素数N作为输出。但是,在打印N之后,程序将停止。无论如何都没有错误消息,该程序将继续运行而不给出任何输出。
我认为您的代码检查素数有问题。您应参考this code进行检查