質(zhì)數(shù)判斷算法 Go

說(shuō)明

質(zhì)數(shù)算法常見(jiàn)于RSA中應(yīng)用這個(gè)方法來(lái)判定一個(gè)數(shù)是否是素?cái)?shù)。

IMG001.png

代碼

package arithmetic

import (
    "math"
)

//IsPrimeNumber 檢查是否質(zhì)數(shù)
func IsPrimeNumber(num uint64) bool {

    if num == 2 || num == 3 {
        return true
    }

    if num%2 == 0 {
        return false
    }

    var sqrt = uint64(math.Sqrt(float64(num)))

    var i uint64 = 3
    for ; i < sqrt; i += 2 {
        if num%i == 0 {
            return false
        }
    }

    return true
}

代碼說(shuō)明

算法核心就是將參數(shù)開(kāi)根號(hào),然后不斷嘗試整除。能夠被整除說(shuō)明不是質(zhì)數(shù)返回false,否則返回true。

優(yōu)化思路

盡可能減少for循環(huán)次數(shù),以提高算法效率。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容