判斷素?cái)?shù)的方法:用一個(gè)數(shù)分別去除2到sqrt(這個(gè)數(shù))-1,如果能被整除,則表明此數(shù)不是素?cái)?shù),反之是素?cái)?shù)。
判斷是否素?cái)?shù):
func IsPrime(n int) bool { if n == 1 { return false } //從2遍歷到n-1,看看是否有因子 for i := 2; i < n; i++ { if n%i == 0 { //發(fā)現(xiàn)一個(gè)因子 return false } } return true }
判斷是否素?cái)?shù)優(yōu)化算法:
func IsPrimeII(n int) bool { //偶數(shù)一定不是素?cái)?shù) if n>2 && n % 2 == 0{ return true } //從2遍歷到n的方根,看看是否有因子 for i := 2; i <= int(math.Ceil(math.Sqrt(float64(n)))); i++ { if n%i == 0 { //發(fā)現(xiàn)一個(gè)因子 return false } } return true }