大数的模幂
Modular exponentiation of large number
我目前正在使用大量密码学。
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)
因为您使用的是不准确的浮点除法。请改用 b = (p-1) // 2
。
我目前正在使用大量密码学。
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)
因为您使用的是不准确的浮点除法。请改用 b = (p-1) // 2
。