一批整数保存在文本文件in.txt中,统计出的所有整数中素数的个数并保存在out.txt文件中。
时间: 2024-02-21 09:00:59 浏览: 98
好的,我可以帮你解决这个问题。首先,我需要读取in.txt文件,然后对其中的每个整数进行判断是否为素数,最后统计素数个数并将结果保存在out.txt文件中。下面是代码实现:
```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
count = 0
with open('in.txt', 'r') as f_in:
for line in f_in:
num = int(line.strip())
if is_prime(num):
count += 1
with open('out.txt', 'w') as f_out:
f_out.write(str(count))
```
在这个代码中,我们定义了一个is_prime函数,用于判断一个数是否为素数。然后我们打开in.txt文件,读取其中的每一行,并将其转换为整数进行判断。如果是素数,则素数个数加1。最后,我们将统计结果写入out.txt文件中。
相关问题
文件digit.txt中存放了若干行的字符串。每行字符串中又包含了若干整数。请编写程序,完成(1)统计其中共有多少个不同的整数;(2)找出这些整数中所有素数,并按素数大到小的顺序输出。
下面是一个Python的实现:
```python
# 判断是否为素数
def is_prime(num):
if num <= 1:
return False
for i in range(2, int(num**0.5)+1):
if num % i == 0:
return False
return True
# 读取文件,统计不同整数的个数
with open('digit.txt', 'r') as f:
num_set = set()
for line in f:
nums = line.split()
for num in nums:
num_set.add(int(num))
print("共有不同整数:", len(num_set))
# 找出所有素数并按素数大到小输出
prime_list = [num for num in num_set if is_prime(num)]
prime_list.sort(reverse=True)
print("所有素数:", prime_list)
```
首先,通过 `set()` 数据类型来统计不同整数的个数。然后,通过 `is_prime()` 函数判断整数是否为素数,并将素数存储在列表中。最后,使用 `sort()` 函数将素数按从大到小的顺序排序,并输出结果。
文件digit.txt中存放了若干行的字符串。每行字符串中又包含了若干整数。请编写程序,完成(1)统计其中共有多少个不同的整数;(2)找出这些整数中所有素数,并按素数大到小的顺序输出。,jV代码
下面是一个Java的实现:
```java
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.HashSet;
import java.util.Set;
import java.util.ArrayList;
import java.util.Collections;
public class Main {
// 判断是否为素数
public static boolean isPrime(int num) {
if (num <= 1) {
return false;
}
for (int i = 2; i <= Math.sqrt(num); i++) {
if (num % i == 0) {
return false;
}
}
return true;
}
public static void main(String[] args) {
Set<Integer> numSet = new HashSet<Integer>();
ArrayList<Integer> primeList = new ArrayList<Integer>();
try {
BufferedReader br = new BufferedReader(new FileReader("digit.txt"));
String line;
while ((line = br.readLine()) != null) {
String[] nums = line.split("\\s+");
for (String num : nums) {
numSet.add(Integer.parseInt(num));
}
}
br.close();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("共有不同整数:" + numSet.size());
for (int num : numSet) {
if (isPrime(num)) {
primeList.add(num);
}
}
Collections.sort(primeList, Collections.reverseOrder());
System.out.println("所有素数:" + primeList);
}
}
```
使用 `BufferedReader` 对文件进行读取,并使用 `split()` 函数分离出每一行中的整数。然后,通过 `HashSet` 数据类型来统计不同整数的个数。接下来,使用 `isPrime()` 函数判断整数是否为素数,并将素数存储在列表中。最后,使用 `Collections.sort()` 函数将素数按从大到小的顺序排序,并输出结果。
阅读全文