微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

大量的模幂

如何解决大量的模幂

我目前正在使用大量密码技术。

a = 3087646334 

p = 1606938044258990275541962092341162602522202993782792835301611

b = int((p-1)/2).

欧拉准则说

a ^ b(mod p)= 1或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,p)

解决方法

因为您使用的是浮点除法,所以不准确。请改用b = (p-1) // 2

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。