溫馨提示×

C++如何處理大數(shù)的分解質(zhì)因數(shù)

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

在C++中,可以通過循環(huán)遍歷從2開始的所有整數(shù),依次判斷這些整數(shù)是否能夠整除給定的大數(shù),如果能夠整除,那么這個(gè)整數(shù)就是大數(shù)的一個(gè)質(zhì)因數(shù)。具體實(shí)現(xiàn)代碼如下:

#include <iostream>
#include <vector>

void primeFactorization(long long n) {
    std::vector<long long> factors;

    for (long long i = 2; i * i <= n; i++) {
        while (n % i == 0) {
            factors.push_back(i);
            n /= i;
        }
    }

    if (n > 1) {
        factors.push_back(n);
    }

    std::cout << "Prime factors of the number are: ";
    for (long long factor : factors) {
        std::cout << factor << " ";
    }
}

int main() {
    long long number;
    std::cout << "Enter a number to find its prime factors: ";
    std::cin >> number;

    primeFactorization(number);

    return 0;
}

在上面的代碼中,首先定義了一個(gè)primeFactorization函數(shù),該函數(shù)接受一個(gè)大數(shù)n作為參數(shù),并將其分解為質(zhì)因數(shù)存儲(chǔ)在factors向量中。然后在主函數(shù)中,從標(biāo)準(zhǔn)輸入中讀取一個(gè)大數(shù),并調(diào)用primeFactorization函數(shù)來計(jì)算其質(zhì)因數(shù)。最后輸出質(zhì)因數(shù)序列。

0