判别素数

[复制链接]
查看11 | 回复2 | 2007-11-7 09:45:15 | 显示全部楼层 |阅读模式
呵呵..因为中间使用了exit for如果在循环中满足了条件,跳出循环的话,当然I值就会比M小, 那么满足的条件也就是MOD 一个数是0, 所以就肯定是素数了,那么一直循环完, i值刚好是m, 所以如果i=m的话,就说明没有能mod 数=0的情况发生,从而断定不是素数了所以你的代码可以改成: (当然,不改也可以呵,只是决不会出现I>M的情况呵)if i = m then print m;"是素数" else print m;"不是素数" 至于为什么I值循环完的话,是=M的,你可以试试for i=1 to 10nextprint i这个就是循环完1到10的过程,循环到最后1次,I仍然要+1,所以最后I的值是11..你的题目是i=2 to m-1,所以循环完的话,刚好是(m-1)+1, 也就是刚好是m的值了.
回复

使用道具 举报

千问 | 2007-11-7 09:45:15 | 显示全部楼层
在这个程序中,i是个不确定值,因为当m不是素数时,for循环会退出,这时m一定大于i,说明m不是素数。不过,这种程序没见过,只见过这个:dim i as integer,m as integer dim b as booleanm = inputbox("") for i = 2 to m-1 if m mod i = 0 then b=falseexit forend ifnext i if b thenmsgbox(m+"是素数")elsemsgbox(m+"不是素数")end ifend sub楼主的方法可以用?简单哦,学习下!欢迎访问我的个人网站:junqing124.vip2.upftp.com
回复

使用道具 举报

千问 | 2007-11-7 09:45:15 | 显示全部楼层
楼上有点c语言编程思想,呵呵!学通!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行