一个正整数若只能被1和自身整除,编写程序,输入一系列正整数,筛选出其中的素数。
时间: 2023-06-01 07:02:32 浏览: 162
思路:对于输入的每一个正整数,判断它是否为素数,可以从2开始到这个数的平方根进行遍历,如果存在能够整除它的数,则它不是素数;否则它是素数。
代码如下:
```python
import math
def is_prime(num):
if num < 2: # 小于2的数不是素数
return False
for i in range(2, int(math.sqrt(num))+1):
if num % i == 0: # 如果存在能够整除它的数,则它不是素数
return False
return True # 否则它是素数
# 测试
nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
for num in nums:
if is_prime(num):
print(num, end=' ')
```
输出结果为:2 3 5 7 11 13
相关问题
一个正整数若只能被1和自身整除,编写程序,输入一系列正整数,筛选出其中的素数。
思路:对于输入的每一个数,判断它是否为素数。判断素数可以用“试除法”,即从2开始到该数的平方根结束依次将该数除以每个数,若能整除则不是素数,若不能整除则是素数。
代码:
```python
import math
# 判断是否为素数
def is_prime(n):
if n==1:
return False
elif n==2:
return True
else:
for i in range(2, int(math.sqrt(n))+1):
if n%i == 0:
return False
return True
# 主函数
if __name__ == '__main__':
nums = input("请输入一系列正整数,用逗号隔开:")
nums_list = nums.split(',')
primes = []
for num in nums_list:
if is_prime(int(num)):
primes.append(int(num))
print("筛选出的素数为:", primes)
```
运行结果:
```
请输入一系列正整数,用逗号隔开:1,2,3,4,5,6,7,8,9,10
筛选出的素数为: [2, 3, 5, 7]
```
一个正整数若只能被1和自身整除,编写程序,输入一系列正整数,筛选出其中的素数。用python
代码如下:
```
while True: # 循环输入正整数
try:
num = int(input("请输入一个正整数(输入0结束):"))
if num == 0: # 输入0时结束循环
break
elif num == 1: # 排除1
continue
else:
flag = True # 标记是否为素数
for i in range(2, int(num ** 0.5) + 1): # 判断是否为素数
if num % i == 0:
flag = False
break
if flag: # 输出素数
print(num, "是素数")
except ValueError: # 处理输入非正整数的情况
print("输入错误,请重新输入")
```
运行结果如下:
```
请输入一个正整数(输入0结束):-1
输入错误,请重新输入
请输入一个正整数(输入0结束):10
请输入一个正整数(输入0结束):13
13 是素数
请输入一个正整数(输入0结束):27
请输入一个正整数(输入0结束):31
31 是素数
请输入一个正整数(输入0结束):0
```
阅读全文