pascal语言编程问题(free pascal

发布网友

我来回答

2个回答

热心网友

如下,能给满意回答吗,谢谢
program prime;
var
a : array [2..1000] of boolean;
i , p : integer;
begin
read(n);
for i:=2 to n do a[i]:=true; {a数组初始化,全部置true}
for i:=2 to n div 2 do
if a[i] then begin { a[i] 相当于 a[i]=true }
p:=i*2;
while p<=n do begin {将a中i的倍数去掉}
a[p]:=false;
p:=p+i;
end; {while}
end; {then}
for i:=2 to n do {打印素数}
if a[i]=true then write(i:4);
end.

热心网友

可以用筛法,先搞一个2到10000的数组,然后把2到10000的两倍以上的数排出。剩下的就是素数。给个赞。如果还不行的话我打个程序。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com