首先,我们要知道质数是什么:

概念:一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数,也称为素数。
规定:0和1既不是质数,也不是合数,最小的质数为2

思路1:将这个数放在一个循环里用【2,这个数本身)的范围里的自然数来试除它,如果能整除说明不是质数,如果循环完就说明他是个质数。

方法1代码及详情如下:

public class 求质数8_27_3 {
/**第一种方法*/
	public static void main(String[] args) {
		System.out.println("请输入一个大于1的数:");
		int intput=new Scanner(System.in).nextInt();//接受数字
		F(intput);//调用求质数的方法
	}
public static void F(int intput) {
	 	if(intput==1) {
		System.out.println("1不是质数也不是合数!");
		return;//返回调用方法处
	}
	if(intput<1) {
		System.out.println("输入错误!退出程序!");
		return;//返回调用方法处
	}
	for(int i=2;i<intput;i++) {//这是除了1和它本身的范围
		if(intput%i==0){
		//从2到它自身减1的依次进行求余,如能被整除说明它不是一个质数,方法返回到调用方法处
			System.out.println(intput+"是个合数!");
			return;//返回调用方法处
		}
	}
	//循环走完后,说明没有一个数能整除intput,所以他是个质数
	System.out.println(intput+"是质数!");

思路2:
如果一个数不是质数,那么必定是两个数的乘积,而这两个数通常一个大一个小,并且小的小于等于根号n,大的大于等于根号n(数学定理),所以一个数字在2~本身算术平方根这个数字区间内没有遇到能够被整除的数字,那么这个数就不是质数。

例如100=2*50=4*25=5*20=10*10 只需要找2—10这个区间即可。

方法2代码如下:

/**第二种方法*/
	//前面与第一个方法一样,不一样的只是循环条件
    //Math.sqrt();求算术平方根
	for(int i=2;i<=Math.sqrt(intput);i++) {//在2~本身算术平方根这个数字区间内没有遇到能够被整除的数字,那么这个数就不是质数。
		if(intput%i==0){
		//从2到本身算术平方根的依次进行求余,如能被整除说明它不是一个质数,方法返回到调用方法处
			System.out.println(intput+"是个合数!");
			return;//返回调用方法处
		}
	}
	//循环走完后,说明没有一个数能整除intput,所以他是个质数
	System.out.println(intput+"是质数!");