gpt4 book ai didi

python - 大数的模取幂

转载 作者:行者123 更新时间:2023-12-04 08:47:04 24 4
gpt4 key购买 nike

我目前正在处理大量密码学。

a = 3087646334 

p = 1606938044258990275541962092341162602522202993782792835301611

b = int((p-1)/2).
欧拉准则说

a^b (mod p) = 1 or a^b (mod p) = p-1.


SAGE 给出正确答案,python 给出错误答案。这是为什么?
  • 预期输出 - 1 or p-1
  • SAGE 输出 - 1
  • Python 输出 - 1047939464127281862631850078334726680804120494559424004614779

  • 代码在下面。
    智者
    a = 3087646334 
    p = 1606938044258990275541962092341162602522202993782792835301611
    b = int((p-1)/2)

    power_mod(a,b,p)

    Python
    a = 3087646334
    p = 1606938044258990275541962092341162602522202993782792835301611
    b = int((p-1)/2)

    pow(a,b,p)

    最佳答案

    因为您使用的是 float 除法,这是不准确的。使用 b = (p-1) // 2反而。

    关于python - 大数的模取幂,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64261074/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com