博舍

Java实现方法判断一个数是不是素数(三种不同的方法,都有运行结果展示) 随机生成一个整数,判断是否为素数的函数

Java实现方法判断一个数是不是素数(三种不同的方法,都有运行结果展示)

素数的定义:

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

如何判定一个数是不是素数?方法一:思考思路采用循环,使用大于1小于判定数的数去整除判定数代码实现importjava.util.Scanner;publicclassIsPrime{publicstaticvoidmain(String[]args){Scannerscan=newScanner(System.in);intnumber=scan.nextInt();isPrime(number);}publicstaticvoidisPrime(intnumber){intcount=0;for(inti=2;icount++;}}if(count==0){System.out.println(number+"是素数");}else{System.out.println(number+"不是素数");}}}

运行结果存在问题当数字较大时,循环次数较多,比较耗时,效率较低,所以不推荐使用-

方法二:思考思路采用循环,使用大于1小于判定数的二分之一的数去整除判定数,(任何一个数的最大因数都小于等于它的二分之一)代码实现

importjava.util.Scanner;publicclassIsPrime{publicstaticvoidmain(String[]args){Scannerscan=newScanner(System.in);intnumber=scan.nextInt();isPrime(number);}publicstaticvoidisPrime(intnumber){intcount=0;for(inti=2;icount++;}}if(count==0){System.out.println(number+"是素数");}else{System.out.println(number+"不是素数");}}}

运行结果存在问题相对上面的代码,效率提高了不少,可以采纳,但是不是最优做法。

方法三:思考思路采用循环,使用大于1小于判定数的开方的数去整除判定数(因为如果一个数不是素数是合数,那么一定可以由两个自然数相乘得到,其中一个大于或等于它的平方根,一个小于或等于它的平方根.并且成对出现)代码实现importjava.util.Scanner;importjava.lang.Math;publicclassIsPrime{publicstaticvoidmain(String[]args){Scannerscan=newScanner(System.in);intnumber=scan.nextInt();isPrime(number);}publicstaticvoidisPrime(intnumber){intcount=0;for(inti=2;icount++;}}if(count==0){System.out.println(number+"是素数");}else{System.out.println(number+"不是素数");}}}

运行结果存在问题:不好理解,但是代码效率好,推荐使用。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。

上一篇

下一篇