急求,判断素数的原理和思路。
时间:10-02
整理:3721RD
点击:
想请教下各位大神们,这个图上作品的设计思路、原理、并且使用的工具,越详细越好,谢谢了。
判断素数

说来话长。
这个好像要经过好长的数学计算公式呀
素数没有啥规律,可以查表
这个就是把所有2到n-1的数都除一下中看余数啊,全都不能整除的就是素数了。
麻烦问下能不能在详细点?
麻烦问下能不能在详细点?
还能怎么详细啊。
这个就是按素数定义,简单粗暴的验证一下啊。
对于一个数N,尝试依次除以2到N-1,检查余数,余数为零就证明能整除,不是素数,退出循环。
图上这个是倒序,从N-1试到2。
真是个傻逼做法,不明白为什么这么写。
明显从正序2开始试效率更高啊。直接第一步就可以把一半的偶数去掉了。
效率更高的做法是除以小于N的所有素数验证余数就可以了。前提是你要有小于N的所有素数的列表。
像要求 什么小于10000的所有素数之类的这么做明显效率更高
补充内容 (2017-1-9 02:40):
update: 只要除以不大于sqrt(N)的素数即可。
太长 一两句没法说
素数,又叫做质数,它首先是在大于1 的自然数中,所以刚开始判断了大于1;素数除了1和它本身以外,就没有其他的因子。
然后进入while循环,假设我输入的数是20,那么我就把19-2这一些数和20作除法,比较除数是不是为0,如果其中有一个计算的结果为0,那么它肯定不是素数,因为它还存在其它的因子(除1和自身外)。如果这样就退出while循环并且输出不是素数的提示。
至于后面的“数值转换为字符串”和“连接字符串”函数只是输出最后的状态。
这个程序还有瑕疵,控件上面的小红三角形表示两个的数据类型不相同。
另外附上正解


