自学Python:求出符合要求的素数
要实现将大于某个整数n且紧靠n的k个素数存入某个数组中,同时实现从一个in.txt文件中读取10对n和k的值,分别求出符合要求的素数,并将结果保存到out.txt文件中。
下面直接上代码:
########################
def isPrime(n):# 判断素数
for i in range(2, n):
if n % i == 0:
return False # n不是素数
return True # n是素数
def num(n, k, array):# 求出紧靠n的k个素数
i, n = 0, n + 1
while k > 0:
if isPrime(n): # 调用函数isPrime()判断n是否为素数
array[i] = n # 若n是素数,则将n存入数组array中
i += 1
k -= 1
n += 1
def filedata():# 文件操作
array = [0] * 1000
rf = open('in.txt', 'r') # 读in.txt文件
wf = open('out.txt', 'w') # 写ou.txt文件
# 从in.txt文件中读取10对(n,k)值
for i in range(10):
[n, k] = rf.readline().split()
n = int(n)
k = int(k)
num(n, k, array) # 调用num()函数
for n in range(k):
print('%d ' % array[n], file=wf, end='') # 写文件
print(file=wf)
rf.close() # 关闭in.txt文件
wf.close() # 关闭out.txt文件
if __name__ == '__main__':
array = [0] * 1000
print('输入整数n和k:')
n, k = map(int, input().split())
num(n, k, array) # 调用num()函数
for n in range(k):
print(array[n], end=' ') # 打印出array数组中的每个值
print('\n')
filedata() # 调用filedata()函数
########################
执行结果如下:
输入整数n和k:
55 6
59 61 67 71 73 79
________________END______________