VFP质数算法

作者在 2015-02-17 22:11:21 发布以下内容


clear
T1=seconds()
num=1000000
local azs[num]
lncnt=num-1
for lnI=2 to int(sqrt(num))
   If azs[lnI]=.F.
       for lnJ=lnI*lnI to num step lnI
*            If azs[lnJ]!=.f.
               azs[lnJ]=.T.
*              lncnt=lncnt-1
 *          endif
        endfor
   endif
endfor
*messagebox("(1-"+transform(num)+")之间共有质数 "+transform(lncnt)+" 个"+chr(13)+"共运行:"+transform(seconds()-t1)+" 秒")
t2=Seconds()
   * 取素数
create cursor dd (prime i)
for lnI = 2 to num
   if azs[lnI]=.F.
       insert into dd values (lnI)
   endif
endfor
go top
browse title "(1-"+transform(num)+")之间共有质数 "+transform(reccount())+" 个"+chr(13)+"共运行:"+transform(t2-t1)+" 秒"


算法 | 阅读 1550 次
文章评论,共0条
游客请输入验证码
浏览402023次