我的尝试总是返回假:(
package main
import (
"fmt"
"math/big"
)
func main() {
i := new(big.Int)
j := i.ProbablyPrime(2)
fmt.Println(j)
}
Run Code Online (Sandbox Code Playgroud)
谁能让我知道我做错了什么?
如方法文档中所述:
ProbablyPrime执行n Miller-Rabin测试以检查x是否为素数.如果它返回true,则x为素数,概率为1 - 1/4 ^ n.如果它返回false,则x不是素数.
n,您传递给方法的参数不是您尝试测试素数的数字,而是确定进行素数猜测的准确度:n的值越高,猜测的准确度就越高. ,以额外的计算为代价.
如果你想测试2是否是素数,你可以这样做(http://play.golang.org/p/ZGx4XOd6WA):
package main
import (
"fmt"
"math/big"
)
func main() {
i := big.NewInt(2)
isPrime := i.ProbablyPrime(1)
fmt.Println(isPrime)
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2025 次 |
| 最近记录: |