判断 素数

本题的目标很简单,就是判断一个给定的正整数是否素数。

输入格式:

输入在第一行给出一个正整数N(≤ 10),随后N行,每行给出一个小于2^31
的需要判断的正整数。

输出格式:

对每个需要判断的正整数,如果它是素数,则在一行中输出Yes,否则输出No。

输入样例:

2
11
111

输出样例:

Yes
No

我的基本思路是自定义一个输出的方法和一个判断是否为质素的方法,在main里面直接调用输出方法,在输出方法中调用素数的判断方法,根据返回的结果输出不同的内容。
代码如下:

import java.util.Scanner;
public class Ispn{
	//输出结果
	public static void fun(int N){
		Scanner in = new Scanner(System.in);
		Ispn hh = new Ispn();
		//for循环每输入一个数进行一次判断
		for(int i=0 ;i<N;i++){
			int data = in.nextInt();
			if(hh.jd(data))//调用函数进行判断,如果返回值为true则输出Yes
				System.out.println("Yes");
			else//如果不为true则输出No
				System.out.println("No");
		}
	}
	//判断是否是素数
	public static boolean jd(int data){
		boolean T = true;
		if(data==1)
			T = false;
		else{
			for(int i=2;i<data-1;i++){//用输入的数分别除以除了1和它本身以外的数,如果能整出则不是素数,反之则是素数
				if(data % i == 0){
					T = false;
				}
			}
		}
		return T;
	}
	//主函数入口
	public static void main(String[] args){
		Scanner in = new Scanner(System.in);
		Ispn hh = new Ispn();
		int N = in.nextInt();//定义要输入的数的个数
		hh.fun(N);
	}
}