91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

如何在C++中優化分解質因數的代碼

c++
小樊
84
2024-07-14 08:00:26
欄目: 編程語言

在C++中優化分解質因數的代碼可以使用試除法和埃氏篩法等算法來減少時間復雜度。以下是一個使用試除法優化的例子:

#include <iostream>
#include <vector>

void primeFactors(int n) {
    // 輸出所有的 2
    while (n % 2 == 0) {
        std::cout << 2 << " ";
        n = n / 2;
    }
  
    // n 現在一定是奇數,可以跳過偶數
    for (int i = 3; i * i <= n; i = i + 2) {
        // 輸出所有的 i
        while (n % i == 0) {
            std::cout << i << " ";
            n = n / i;
        }
    }
  
    // n 現在可能是一個大于 2 的素數
    if (n > 2) {
        std::cout << n << " ";
    }
}

int main() {
    int n = 315;
    primeFactors(n);
    return 0;
}

這個代碼使用試除法來分解質因數,首先判斷是否能被2整除,然后再循環判斷是否能被奇數整除。這樣可以減少不必要的循環次數,提高代碼的效率。

另外,也可以使用埃氏篩法來預處理質數表,然后使用質數表來進行分解質因數,這樣可以更快地找到質因數。

0
榆社县| 合作市| 荆州市| 库车县| 德格县| 呼玛县| 永安市| 卢湾区| 甘谷县| 石狮市| 临汾市| 文安县| 永安市| 哈密市| 大荔县| 会宁县| 霍林郭勒市| 上林县| 石景山区| 祥云县| 崇阳县| 天峻县| 大庆市| 华蓥市| 富民县| 长武县| 六盘水市| 巴楚县| 康马县| 贵定县| 岳池县| 炎陵县| 金乡县| 舞钢市| 鞍山市| 竹北市| 乐昌市| 丰镇市| 水城县| 定兴县| 固始县|