Как описана в документации методы:
ProbablyPrime выполняет н Миллер-Рабин тестов, чтобы проверить, является ли х простого числа. Если он возвращает 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)
}
Я думаю, вы хотите, чтобы 'n' было намного больше 1? При n = 1 вы все равно пропустите 3/4 простых чисел. (Это влияет только на большое число, небольшие простые числа являются специальными в алгоритме.) Я бы предложил написать 'isPrime: = i.ProbablyPrime (10)' или так. – jochen