文件digit.txt中存放了若干行的字符串。每行字符串中又包含了若干整数。请编写程序,完成(1)统计其中共有多少个不同的整数;(2)找出这些整数中所有素数,并按素数大到小的顺序输出。
时间: 2024-02-21 16:57:26 浏览: 30
以下是 Python 代码实现:
```python
import math
# 读取文件内容
with open('digit.txt', 'r') as f:
content = f.read()
# 将文件内容分割成行
lines = content.split('\n')
# 将整数存储在一个 set 中,统计不同的整数个数
int_set = set()
for line in lines:
# 将每行字符串分割成整数列表
nums = list(map(int, line.split()))
# 将整数加入 set 中
for num in nums:
int_set.add(num)
print('共有', len(int_set), '个不同的整数')
# 找出素数并按素数大到小的顺序输出
primes = []
for num in int_set:
# 判断是否为素数
is_prime = True
if num < 2:
is_prime = False
else:
for i in range(2, int(math.sqrt(num)) + 1):
if num % i == 0:
is_prime = False
break
# 将素数加入 primes 列表中
if is_prime:
primes.append(num)
primes.sort(reverse=True)
print('素数列表:', primes)
```
这段代码首先读取文件内容,将其分割为行,再将每行字符串分割为整数列表,并将整数存储在一个 set 中,统计不同的整数个数。然后,根据素数的定义,判断整数是否为素数,并将素数存储在一个列表中。最后,按素数大到小的顺序输出素数列表。