数学📌质数.txt
质数(prime number)又称素数,在大于1的自然数中,除了1和它本身以外不再有其他因数。
int8范围内质数有31个,最大127
int16范围内质数有3512个,最大32749
int32范围内质数有105097565个,最大2147483647
========== ========== ========== ========== ==========
// IsPrime 判断一个正整数是否质数
func IsPrime(n int) bool {
if n == 2 {
return true
}
if n < 2 || n&1 == 0 {
return false
}
for i := 3; i*i <= n; i += 2 {
if n%i == 0 {
return false
}
}
return true
}
// PrimeFactorize 分解质因子
func PrimeFactorize(n int) []int {
var res []int
for n&1 == 0 {
res = append(res, 2)
n >>= 1
}
for i := 3; i*i <= n; i += 2 {
for n%i == 0 {
res = append(res, i)
n /= i
}
}
if n > 1 {
res = append(res, n)
}
return res
}