筛法求素数真的很快

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

筛法求素数真的很快,具体有多快?今天测了一下:

求10万以内所有素数,用时0.01秒之内;

求100万以内所有素数,用时0.08秒;

求1000万以内所有素数,用时1.1秒;

求1亿以内所有素数,用时约13秒。

用我那台烂电脑测筛法求素数的效率都如此之高,所以这个……必须要熟练掌握啊!

var i,j,k,n:longint;

l:array[1..1000000]of boolean;

su:array[1..500000]of longint;

begin

k:=0;

fillchar(l,sizeof(l),true);

readln(n);

for i:=2 to trunc(sqrt(n)) do

if l[i] then

for j:=2 to n div i do l[i*j]:=false;

for i:=2 to n do if l[i] then begin

inc(k);

su[k]:=i;

end;

writeln(k);

for i:=1 to k do write(su[i]:8);

end.

相关文档
最新文档