【问题标题】:Lucas-Lehmer Mersenne numbers with Python使用 Python 的 Lucas-Lehmer Mersenne 数
【发布时间】:2019-04-28 15:59:55
【问题描述】:

编写使用 Lucas-Lehmer 检验检查梅森数的 Python 代码。

def lucas_lehmer(p):
 my_list=[4]
 value=2**p-1
 lucas=4
 for val in range(1, p - 1):
    lucas=(lucas*lucas-2)%value
 if lucas== 0:
        my_list.apprend(lucas)
 else: 
  break
 print(my_list)
 print(lucas)

上面显示的代码只给出了第一次迭代的结果,与选择的 p 值无关。我希望能够显示给定 p 值内的所有 Lehmer 测试值,在本例中为 17。

【问题讨论】:

    标签: python-3.x


    【解决方案1】:

    如果我正确理解您的问题,我认为问题不在于在循环中进行追加,而仅在 p 是质数时。你的格式有点不对劲,所以我不能 100% 确定我是否正确。此外,您在append 中有错字。我添加了一些代码来打印素性测试的实际结果。

    def lucas_lehmer(p):
        my_list=[4]
        value=2**p-1
        lucas=4
        for val in range(1, p - 1):
            lucas = ((lucas*lucas)-2) % value
            my_list.append(lucas)
        if lucas == 0:
            print("prime")
        else:
            print("composite")
        print(my_list)
        print(lucas)
    

    调用lucas_lehmer(7) 会导致以下输出:

    prime
    [4, 14, 67, 42, 111, 0]
    0
    

    【讨论】:

    • 这个帮助。非常感谢!
    猜你喜欢
    • 1970-01-01
    • 2018-12-15
    • 2013-05-05
    • 1970-01-01
    • 1970-01-01
    • 2017-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多