时间限制
400 ms
内存限制
64 MB
题目描述:
本题的目标很简单,就是判断一个给定的正整数是否素数。
输入格式:
输入在第一行给出一个正整数N(≤ 10),随后N行,每行给出一个小于
2
31
2^{31}
231的需要判断的正整数。
输出格式:
对每个需要判断的正整数,如果它是素数,则在一行中输出Yes,否则输出No。
输入样例:
2
11
111
输出样例:
Yes
No
判断给定的数是否为素数
emmmmmmm
暴力跑他
(相比这个暴力比起来有一个小优化: 我们可以发现除了第一个素数以外, 其他的任何素数都是奇数,所以我们之后每次都可以可以+2 +2 的往上加,而不是 +1 +1 的往上加)
import java.io.*;
import java.util.*;
public class Main
{
static boolean isprime(int x)
{
if (x < 2)
return false;
for (int i = 2; i <= x / i; i++)
{
if (x % i == 0)
return false;
}
return true;
}
public static void main(String[] args)
{
int n = sc.nextInt();
while (n-- > 0)
{
int x = sc.nextInt();
if (isprime(x))
out.println("Yes");
else
out.println("No");
}
out.flush();
out.close();
}
static Scanner sc = new Scanner(System.in);
static PrintWriter out = new PrintWriter(System.out);
}
如果有说错的 或者 不懂的 尽管提 嘻嘻
一起进步!!!