你如何使用golang的ProbablyPrime?

Sha*_*aun 2 primes go

我的尝试总是返回假:(

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)

谁能让我知道我做错了什么?

kra*_*ait 5

如方法文档中所述:

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)