码迷,mamicode.com
首页 > 其他好文 > 详细

判断一个数是否是质数

时间:2015-05-02 12:20:15      阅读:125      评论:0      收藏:0      [点我收藏+]

标签:

质数(prime number)又称素数,有无限个。一个大于1的自然数,除了1和它本身外,能被整除以其他自然数(质数),换句话说就是该数除了1和它本身以外不再有其他的因数;否则称为合数

如何判断一个数是否是质数:

代码1:

 1     /**
 2      * 判断给定的数字是否为素数(质数)
 3      * @param num
 4      * @return
 5      */
 6     public static boolean isPrime(int num){
 7         if(num < 2){
 8             return false;
 9         }
10         
11         for(int i = 2;i < num;i++){
12             if(num % i == 0){
13                 return false;
14             }
15         }
16         
17         return true;
18     }

 

代码2:

 1     /**
 2      * 判断给定的数字是否为素数(质数)
 3      * @param num
 4      * @return
 5      */
 6     public static boolean isPrime(int num){
 7         if(num < 2){
 8             return false;
 9         }
10         
11         for(int i = 2;i*i < num;i++){
12             if(num % i == 0){
13                 return false;
14             }
15         }
16         
17         return true;
18     }

总结:代码2相对于代码1效率更高

判断质数的技巧:

根据质数的定义,在判断一个数n是否是质数时,我们只要用1至n-1去除n,看看能否整除即可。但我们有更好的办法。先找一个数m,使m的平方大于n,再用<=m的质数去除n,如果都不能整除,则n必然是质数。如我们要判断1993是不是质数,50*50>1993,那么我们只要用1993去 除<50的质数就可以了。100以内的质数有25个,还是比较好记的,我们只要记熟100以内质数,就可以快速判断10000以内的数是不是质数了。

希望有更优算法的朋友能给我提出建议和指正。

判断一个数是否是质数

标签:

原文地址:http://www.cnblogs.com/shunjie0828/p/4471652.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!