正文

关于质数(素数)2005-08-03 11:39:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/mozo/3412.html

分享到:

do input Q& if Q&=IsZhiShu&(Q&) then print Q&;"是质数" loop while Q& FUNCTION IsZhiShu& (a&) f% = FREEFILE OPEN "质数表" FOR RANDOM AS #f% LEN = LEN(a&) IF LOF(f%) = 0 THEN      z& = 2      PUT #f%, 1, z&      z& = 3      PUT #f%, 2, z& END IF e& = LOF(f%) \ LEN(a&) GET #f%, e&, z& SELECT CASE a& CASE IS <= 2   IsZhiShu& = 2 CASE IS >= z&   DO UNTIL z& >= a&     DO       z& = z& + 2       q& = SQR(z&)       i& = 2       DO         GET #f%, i&, k&         IF z& MOD k& = 0 THEN EXIT DO         i& = i& + 1       LOOP UNTIL k& > q&     LOOP UNTIL k& > q&     e& = e& + 1     PUT #f%, e&, z&     'LOCATE 5, 5: PRINT e&, z&   LOOP   IsZhiShu& = z& CASE IS < z&   l& = 1   r& = e&   DO     m& = (r& + l&) / 2     GET #f%, m&, b&     'if a&=b& then     '   r&=m&     '   exit do     'end if     IF a& > b& THEN l& = m& ELSE r& = m&   LOOP UNTIL r& - l& < 2     GET #f%, r&, IsZhiShu& END SELECT CLOSE #f% END FUNCTION FUNCTION fenjie$ (x&) if x&=0 then    fenjie$="0"    exit function elseif x&<0 then   x&=-x&   k$="-1" end if   f% = FREEFILE OPEN "质数表" FOR RANDOM AS #f% LEN = LEN(a&) i& = 1 j& = 2 DO UNTIL x& = 1 IF x& MOD j& = 0 THEN    x& = x& / j&    IF k$ = "" THEN k$ = LTRIM$(STR$(j&)) ELSE k$ = k$ + "*" + LTRIM$(STR$(j&)) ELSE    i& = i& + 1    GET #f%, i&, j& END IF LOOP CLOSE #f% fenjie$ = k$ END FUNCTION

阅读(3877) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册