1. 程式人生 > >Go語言演算法:判斷素數

Go語言演算法:判斷素數

判斷是否素數

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
}