以下に、シンプルで簡単な素因数分解の方法といくつかのコード例を示します。
- メソッド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;
}
- メソッド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++で素因数分解を行う方法を簡単なコード例とともに説明しました。これを参考にして、自分自身のプログラムに組み込んでみてください。