You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
16 lines
514 B
16 lines
514 B
package crypto |
|
|
|
import "math/big" |
|
|
|
// Prime checks that given number is prime. |
|
func Prime(p *big.Int) bool { |
|
// TODO(tdakkota): maybe it should be smaller? |
|
// 1 - 1/4^64 is equal to 0.9999999999999999999999999999999999999970612641229442812300781587 |
|
// |
|
// TDLib uses nchecks = 64 |
|
// See https://github.com/tdlib/td/blob/d161323858a782bc500d188b9ae916982526c262/tdutils/td/utils/BigNum.cpp#L155. |
|
const probabilityN = 64 |
|
|
|
// ProbablyPrime is mutating, so we need a copy |
|
return p.ProbablyPrime(probabilityN) |
|
}
|
|
|