自学编程Python日更成长营

自学Python:求出符合要求的素数

2022-04-08  本文已影响0人  小强聊成长

要实现将大于某个整数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______________

上一篇 下一篇

猜你喜欢

热点阅读