C++での数の素因数分解方法


以下に、シンプルで簡単な素因数分解の方法といくつかのコード例を示します。

  1. メソッド1: 素因数分解を行う関数を作成する
#include <iostream>
#include <vector>
// 数の素因数分解を行う関数
std::vector<int> primeFactorization(int n) {
    std::vector<int> factors;

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

    return factors;
}
int main() {
    int number = 1000;
    std::vector<int> factors = primeFactorization(number);

    std::cout << "Number: " << number << std::endl;
    std::cout << "Prime factors: ";
    for (int factor : factors) {
        std::cout << factor << " ";
    }

    return 0;
}
  1. メソッド2: 素因数分解を行う再帰関数を作成する
#include <iostream>
#include <vector>
// 数の素因数分解を行う再帰関数
void primeFactorizationRecursive(int n, std::vector<int>& factors, int divisor = 2) {
    if (n <= 1) {
        return;
    }

    while (n % divisor == 0) {
        factors.push_back(divisor);
        n /= divisor;
    }

    primeFactorizationRecursive(n, factors, divisor + 1);
}
int main() {
    int number = 1000;
    std::vector<int> factors;

    primeFactorizationRecursive(number, factors);

    std::cout << "Number: " << number << std::endl;
    std::cout << "Prime factors: ";
    for (int factor : factors) {
        std::cout << factor << " ";
    }

    return 0;
}

これらの方法を使用すると、与えられた数を素因数分解することができます。コード例では、数値「1000」を素因数分解して結果を出力しています。

このように、C++で素因数分解を行う方法を簡単なコード例とともに説明しました。これを参考にして、自分自身のプログラムに組み込んでみてください。