计算7^181 mod 19 的时候
可是使用费马小定理或者python的时候 计算结果是7
请问是什么回事呢?
Int64
溢出了, julia 默认使用 Int64
。大数用 BigInt
(ref: 任意精度算术 · Julia中文文档)
julia> typeof(7^181)
Int64
julia> typemax(Int64)
9223372036854775807
julia> 7^25
-5543697716832367161
julia> 7^24
7113790643470898241
julia> BigInt(7)^181
917794059966337759258980364184622507324708412424933617705921828697250625565663893908235291185789020748340741557880041586410213840913190637861881837556007
julia> BigInt(7)^181 % 19
7
我一开始弄了 BigInt(7^181),然后出错了,原来是BigInt(7)^181,现在搞懂了,十分感谢