任意输入20个正整数,找出其中的素数,并将这些素数按由小到大排序。要求:判断一个数是否为素数用函数实现;排序用选择法函数实现。主函数输入20正整数,调用素数函数,排序函数,输出排序后的素数。请编写该代码
时间: 2024-02-15 14:02:29 浏览: 44
好的,以下是您所需的代码:
```python
# 判断是否为素数的函数
def is_prime(num):
if num < 2:
return False
for i in range(2, int(num**0.5)+1):
if num % i == 0:
return False
return True
# 选择法排序的函数
def selection_sort(arr):
for i in range(len(arr)-1):
min_idx = i
for j in range(i+1, len(arr)):
if arr[j] < arr[min_idx]:
min_idx = j
arr[i], arr[min_idx] = arr[min_idx], arr[i]
# 主函数
if __name__ == '__main__':
nums = []
for i in range(20):
num = int(input("请输入第%d个正整数:" % (i+1)))
nums.append(num)
primes = []
for num in nums:
if is_prime(num):
primes.append(num)
selection_sort(primes)
print("排序后的素数为:")
for prime in primes:
print(prime, end=' ')
```
以上代码可以依次输入20个正整数,找出其中的素数,并将这些素数按由小到大排序输出。其中,is_prime函数用于判断一个数是否为素数,selection_sort函数用于对素数进行选择法排序,主函数则依次输入20个正整数,调用is_prime和selection_sort函数,输出排序后的素数。
阅读全文