java 判断是不是素数

java 判断是不是素数,第1张

判断number是否是素数有这么几种方法:

(1)用2至number-1之间的所有数去整除number,如果有一个能被整除,说明number是非素数;除非所有的数都不能被整除,才说明number是素数。

(2)用2至number/2之间的所有数去整除number,如果有一个能被整除,说明number是非素数;除非所有的数都不能被整除,才说明number是素数。

(3)用2至number的平方根之间的所有数去整除number,如果有一个能被整除,说明number是非素数;除非所有的数都不能被整除,才说明number是素数。

这3种的方法的效率是逐渐提高的。下面列出了第3种方法的实现:

import javautilScanner;

public class Test2 {

public static void main(String[] args) {

int number; // 输入的数字

Scanner input = new Scanner(Systemin);

Systemoutprintln("请输入数字");

number = inputnextInt(); // 输入数字

if(isPrimeNumber(number)){

Systemoutprintln(number + "是一个素数");

}

else{

Systemoutprintln(number + "是一个非素数");

}

}

public static boolean isPrimeNumber(int num){

if(num < 2){

Systemoutprintln("数据错误");

return false;

}

int k = (int)Mathsqrt(num); //num的平方根

int i;

for(i=2; i<=k; i++){ //依次用2k之间的数去整除num,如果没有一个数能被整除,说明num是素数

if(num % i == 0){

break;

}

}

if(i > k){

return true;

}

return false;

}

}

如果对你的程序进行修改,也可这样:

public static void main(String[] args) {

int number;// 输入的数字

int j = 2;

Scanner input = new Scanner(Systemin);

Systemoutprintln("请输入数字");

number = inputnextInt();// 输入数字

for(j=2;j<number;j++){

if(number%j == 0) {

Systemoutprintln("这不素数");

break;

}

}

if(j>=number)

Systemoutprintln("这是素数");

}

因为for循环中i一直是增加的,如果在i=k之前找到一个能被k整除的,那么就(break)跳出循环,说明它有除了自己和1之外的约数,他就不是素数,当i==k成立,for循环的i++还执行了一次,也就是i会比k大一,一直在中途都没有找到他的约数,那么就是素数了

代码是没问题的

质数: 

public static boolean isPrime(int N){if( N < 2 ) return false;

for( int i = 2 ; ii <= N; i++){if( N % i == 0) return false;return true;}

JAVA 编程方法:

public static void main(String[] args) {// TODO Auto-generated method stub

Scanner input = new Scanner(Systemin);for(int i=0;i<100;i++){

Systemoutprint("请输入数字:");int num1 = inputnextInt();if(num1==2||num1==3){

Systemoutprintln(num1+"是质数");}else if(num1%2!=0&&(num1+1)%2==0){

Systemoutprintln(num1+"是质数");}else{Systemoutprintln(num1+"不是质数");

public class test2 {

public static void main(String[] args) throws IOException {

int n=9;

int isPrime=1;

for(int i=2;i<n/2;i++)

{

if(n%i==0)

{

isPrime=0;

break;

}

}

if(isPrime==1)

Systemoutprintly("是素数");

else

Systemoutprintly("不是素数");

}

}

以上就是关于java 判断是不是素数全部的内容,包括:java 判断是不是素数、新手提问,java判断一个数是否素数、用 java 怎么判断一个数是否为质数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9337841.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存