Delphi - 质数

Delphi - Prime Numbers

素数(或质数)是大于 1 的自然数,除了 1 和它本身之外没有正约数。 我正在做的是检查数字是否为质数:

begin
writeln('give a number ');
readln(N);  S := 0;
for I := 1 to N do
if N mod I = 0 then
 S := S + 1 ;

 if S = 2 then
 writeln('Prime')
 else
 writeln('not prime');
 sleep(50000);

end.

我现在正尝试使用此方法获取 1 到 100(或任何其他数字)之间的所有素数:

begin
writeln('give a number ');
readln(N);

for I := 1 to N do  begin
        S := 0;
 for J := 1 to I do
  begin
 if I mod J = 0 then
 S := S +1 ;  if S = 2 then
       writeln(I);

 end;
   end;
sleep(500000000000);
 end.

但它并没有真正起作用。

我能够修复它:

begin
writeln('give a number ');
readln(N);

  for I  := 1 to N do begin
 S := 0;
 for J := 1 to I do
 begin
if I mod J = 0 then
        S := S +1 ;

 end;   
 if S = 2 then writeln(i);


 end; sleep(50000);
end.