本题的目标很简单,就是判断一个给定的正整数是否素数。
输入在第一行给出一个正整数N(≤ 10),随后N行,每行给出一个小于231的需要判断的正整数。
对每个需要判断的正整数,如果它是素数,则在一行中输出Yes,否则输出No。
2
11
111
Yes
No
如果没有判断输入的数字是不是有小于2的话,会有一个案例过不了的!!!
// 小于2的数不是素数
if (number < 2) {
return false;
}
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int N = scanner.nextInt();
for (int i = 0; i < N; i++) {
int number = scanner.nextInt();
System.out.println(isPrime(number) ? "Yes" : "No");
}
}
private static boolean isPrime(int number) {
// 小于2的数不是素数
if (number < 2) {
return false;
}
// 检查从2到sqrt(number)之间的数是否能整除number
for (int i = 2; i <= Math.sqrt(number); i++) {
if (number % i == 0) {
return false;
}
}
return true;
}
}