鱼C论坛

 找回密码
 立即注册
查看: 3457|回复: 4

素数

[复制链接]
发表于 2011-6-8 22:29:32 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
写一个程序,允许输入一个数M,并判断M是否为素数?
算法思想:让M被2到K除,如果M能被2到K之中任何一个整数整除,则提前结束循环,此时I必然小于或等于K;如果M不能被2到K之间的任一整数整除,则在完成最后一次循环后,I还要加1,然后才终止循环,在循环之后判断I的值是否大于或等于K+1,,若是,则表明未曾被2到K之间的任一整数整除过,因此输出“是素数”。
    小弟请问为何算法思想中会用此数开平方根去作为K,想请高手帮小弟引导一下思路,小弟开始以为K应该为M—1。用M去除M-1之间任何一个数去,让高手见笑了,还是请高手指教吧!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-6-9 07:41:12 | 显示全部楼层
如果M不是素数,它一定能写为M=A*B的形式,其中的A,B不可能都大于  根号M(否则A*B>M),所以只要找到A,B中较小的一个就可以判断M不是素数。而A,B中较小的数最大也只能是 根号M.

所以只要判断到根号M就可以了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-6-9 09:38:32 | 显示全部楼层
你可以拿个数出来手算一下
当两个乘数都到平方根后,第一个乘数和第二个乘数就是前后位置颠倒了而已
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-6-9 14:55:21 | 显示全部楼层
:lol简单的算法
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-9-26 18:22:03 | 显示全部楼层
以上已经回答的很准确了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-2-7 08:02

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表