关于Julia运算错误的问题


#1

计算7^181 mod 19 的时候QQ%E6%88%AA%E5%9B%BE20190407151551
可是使用费马小定理或者python的时候 计算结果是7
请问是什么回事呢?


#2

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

#3

我一开始弄了 BigInt(7^181),然后出错了,原来是BigInt(7)^181,现在搞懂了,十分感谢