代码如下:
Program prime;
var a:array[0..10000000]of boolean;
p:array[0..5000000]of longint;
pn,n,i,j:longint;
begin
assign
.... //这一部分省略
readln(n);
for i:=2 to trunc(sqrt(n)) do // 这一句有点问题,trunc是什么?——1
begin
if not a[i] then //这个地方也不懂,书上说"设当i为合数时a[i]的值
for j:=2 to n div i do 为true” 但是,之前并没有定义啊——2
a[i*j]:=true;
end;
for i:=2 to n do
if not a[i] then
begin
inc(pn);
p[pn]:=1;
end;
for i:=1 to pn-1 do
write(p[i],' ');
writeln(p[pn]); //这后面的都没问题,就是将未被筛去的数存入p数
close 组中,然后再依次输出吧
....
end.
主要问题我都标上了序号,麻烦高手指点指点..