首頁 >後端開發 >Golang >golang判斷是否是質數的方法

golang判斷是否是質數的方法

尚
原創
2020-03-27 11:41:045374瀏覽

golang判斷是否是質數的方法

判斷質數的方法:用一個數分別去除2到sqrt(這個數)-1,如果能被整除,則表示此數不是質數,反之是質數。

判斷是否素數:

func IsPrime(n int) bool {
	if n == 1 {
		return false
	}

	//从2遍历到n-1,看看是否有因子
	for i := 2; i < n; i++ {
		if n%i == 0 {
			//发现一个因子
			return false
		}
	}
	return true
}

判斷是否素數最佳化演算法:

func IsPrimeII(n int) bool  {
	//偶数一定不是素数
	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 {
			//发现一个因子
			return false
		}
	}
	return true
}

更多golang知識請關注PHP中文網golang教學欄位。

以上是golang判斷是否是質數的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn