1.文件digit.txt中存放了若干行的字符串。每行字符串中又包含了若干整数。请编写程序,完成(1)统计其中共有多少个不同的整数;(2)找出这些整数中所有素数,并按素数大到小的顺序输出。 说明:digit.txt文件及其中的若干行的整数,请自行准备
时间: 2024-02-28 22:56:48 浏览: 72
汇编 统计一串字符串信息 输出大小写其他字符个数 并且实现了输出各个字符的频次并按从大到小排序
好的,我可以帮你解决这个问题。首先,我们需要读取digit.txt文件中的所有整数,并统计其中不同整数的数量。可以使用Python的set数据类型来实现去重和计数。具体代码如下:
```python
# 读取文件中的所有整数
nums = []
with open('digit.txt', 'r') as f:
for line in f:
nums.extend(map(int, line.strip().split()))
# 统计不同整数的数量
num_set = set(nums)
num_count = len(num_set)
print("共有%d个不同的整数" % num_count)
```
接下来,我们需要找出所有素数,并按素数大到小的顺序输出。可以使用Python的filter函数来实现筛选素数,再使用sorted函数来排序。具体代码如下:
```python
# 判断一个数是否为素数
def is_prime(n):
if n <= 1:
return False
for i in range(2, int(n ** 0.5) + 1):
if n % i == 0:
return False
return True
# 筛选素数并按素数大到小排序
prime_nums = sorted(filter(is_prime, num_set), reverse=True)
print("所有素数为:", prime_nums)
```
这样,我们就完成了题目要求的两个任务。完整代码如下:
```python
# 判断一个数是否为素数
def is_prime(n):
if n <= 1:
return False
for i in range(2, int(n ** 0.5) + 1):
if n % i == 0:
return False
return True
# 读取文件中的所有整数
nums = []
with open('digit.txt', 'r') as f:
for line in f:
nums.extend(map(int, line.strip().split()))
# 统计不同整数的数量
num_set = set(nums)
num_count = len(num_set)
print("共有%d个不同的整数" % num_count)
# 筛选素数并按素数大到小排序
prime_nums = sorted(filter(is_prime, num_set), reverse=True)
print("所有素数为:", prime_nums)
```
阅读全文