1. 问题描述:
给定 n 个正整数 ai,判定每个数是否是质数。
输入格式
第一行包含整数 n。接下来 n 行,每行包含一个正整数 ai。
输出格式
共 n 行,其中第 i 行输出第 i 个正整数 ai 是否为质数,是则输出 Yes,否则输出 No。
数据范围
1 ≤ n ≤ 100,
1 ≤ ai ≤ 2 ^ 31 − 1
输入样例:
2
2
6
输出样例:
Yes
No
来源:https://www.acwing.com/problem/content/description/868/
2. 思路分析:
因为一个数的因数都是成对出现的,若d <= n / d,所以我们只需要枚举到√n即可,直接默写对应的模板即可。
3. 代码如下:
class Solution:
# 试除法判断是否是质数
def isPrime(self, x: int):
if x < 2: return False
i = 2
while i * i <= x:
if x % i == 0:
return False
i += 1
return True
def process(self):
n = int(input())
for i in range(n):
x = int(input())
if self.isPrime(x):
print("Yes")
else:
print("No")
if __name__ == '__main__':
Solution().process()