判断一个给定的正整数是否素数 输入格式: 输入在第一行给出一个正整数N(≤ 10),随后N行,每行给出一个小于1000000 的需要判断的正整数 输出格式: 对每个需要判断的正整数,如果它是素数,则在一行中输出Yes,否则输出No
时间: 2024-11-25 18:09:09 浏览: 7
Python例题(一) 输入一个正整数判断是不是素数
判断一个正整数是否为素数的传统方法是试除法,即检查它是否能被小于它的所有自然数整除。但如果数值较大,这种方法效率较低。更高效的做法是只需检查到其平方根,因为一个合数必定有因数小于或等于它的平方根。
以下是Python的一个简单实现,使用了这种优化技巧:
```python
import math
def is_prime(num):
if num <= 1:
return False
elif num == 2 or num == 3:
return True
elif num % 2 == 0 or num < 3:
return False
else:
sqrt_num = int(math.sqrt(num))
for i in range(3, sqrt_num + 1, 2):
if num % i == 0:
return False
return True
n = int(input())
for _ in range(n):
test_num = int(input())
result = "Yes" if is_prime(test_num) else "No"
print(result)
```
这个程序先处理一些特殊情况(2和3是素数,偶数除了2以外不是素数),然后只检查奇数作为可能的因子,直到达到`sqrt_num`。如果找到因子,就立即返回False,否则说明是素数。
阅读全文