题目链接.
题目
本题的目标很简单,就是判断一个给定的正整数是否素数。
输入格式:
输入在第一行给出一个正整数N(≤ 10),随后N行,每行给出一个小于2
31
的需要判断的正整数。
输出格式:
对每个需要判断的正整数,如果它是素数,则在一行中输出Yes,否则输出No。
输入样例:
2
11
111
结尾无空行
输出样例:
Yes
No
结尾无空行
要点
- 减少判断素数时循环的次数
代码
import math
# 此函数用于判断n是否为素数
# 是素数则返回True, 不是素数则返回False
def is_prime(n):
if n <= 1:
return False
for j in range(2, int(math.sqrt(n)) + 1):
if n % j == 0:
return False
return True
# 输入在第一行给出一个正整数N(≤ 10)
N = int(input())
# 随后N行,每行给出一个小于2^31的需要判断的正整数
for i in range(N):
# 接收此行的输入的数
num = int(input())
# 判断当前的数是不是素数
# 如果是素数,则输出'Yes'。不是素数,则输出'No'。
if is_prime(num):
print('Yes')
else:
print('No')