关于#基础代码#的问题,如何解决?(语言-python)

img


按照这个题目和基础代码,如果题目变成“找出n个默尼森数”(n可由操作者任意输入),那还需要加点什么上去呢?

1、在while True的前面一行添加一个变量用于接收输入的n:num=int(input());
2、判断条件if t == 5,修改成if t == num。
望采纳,谢谢!

详细修改后的代码和注释如下,望采纳

# 用于判断一个数是否为素数的函数
def is_prime(n: int) -> bool:
    if n <= 1:
        return False
    for i in range(2, int(n ** 0.5) + 1):
        if n % i == 0:
            return False
    return True

# 用于找出指定个数的默尼森数的函数
def find_m_primes(n: int) -> List[int]:
    # 用于保存结果的列表
    result = []

    # 枚举 P 的值,并判断是否为默尼森数
    p = 2
    while len(result) < n:
        # 计算 M 的值
        m = 2 ** p - 1

        # 如果 P 和 M 都是素数,则将 M 加入结果列表
        if is_prime(p) and is_prime(m):
            result.append(m)

        # 继续枚举下一个 P 的值
        p += 1

    # 返回结果列表
    return result

# 找出 5 个默尼森数
print(find_m_primes(5))
# 输出:[3, 7, 31, 127, 8191]