3. 编写程序,生成一个二进制数据文件,将n~m之间的所有素数写入文件data.dat中。从数据文件中读取二进制数据,并在显示器上以每行10个数的形式显示。
时间: 2024-02-15 18:02:14 浏览: 58
以下是Python代码实现:
```python
import struct
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
n = int(input("请输入n: "))
m = int(input("请输入m: "))
with open("data.dat", "wb") as f:
for i in range(n, m+1):
if is_prime(i):
f.write(struct.pack("i", i))
print("素数列表已写入data.dat文件")
with open("data.dat", "rb") as f:
count = 0
while True:
data = f.read(4)
if not data:
break
num = struct.unpack("i", data)[0]
print(num, end='\t')
count += 1
if count % 10 == 0:
print()
print("素数列表已在屏幕上显示")
```
这里使用了`struct`模块来进行二进制数据的读写操作。`struct.pack("i", i)`将整数`i`打包为4字节的二进制数据,`struct.unpack("i", data)`将4字节的二进制数据解包为整数。
阅读全文