七叶笔记 » java编程 » java判断number是否是素数

java判断number是否是素数

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

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

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

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

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

import java.util.Scanner;public class Test2 {    public static void main(String[] args) {        int number; // 输入的数字        Scanner input = new Scanner(System.in);        System.out.println("请输入数字");        number = input.nextInt(); // 输入数字        if(isPrimeNumber(number)){            System.out.println(number + "是一个素数");        }        else{            System.out.println(number + "是一个非素数");        }    }    public static boolean isPrimeNumber(int num){        if(num < 2){        System.out.println("数据错误");        return false;    }    int k = (int)Math.sqrt(num); //num的平方根    int i;    for(i=2; i<=k; i++){ //依次用2..k之间的数去整除num,如果没有一个数能被整除,说明num是素数        if(num % i == 0){            break;        }    }    if(i > k){        return true;    }        return false;    }}

相关文章