给我一段简洁的质因数分解的c++代码
时间: 2024-10-21 21:07:30 浏览: 15
1.5编程基础之循环控制_43质因数分解(NOIP2012复赛 普及组 第一题)-2019-09-11.pdf
在 C++ 中,质因数分解是一种计算一个合数(非素数)的所有质因子的算法。下面是一个简单的质因数分解的代码片段,它使用了循环和条件判断来找到最小的质因子:
```cpp
#include <iostream>
#include <vector>
// 函数用于检查是否为质数
bool isPrime(int num) {
if (num <= 1) return false;
for (int i = 2; i * i <= num; ++i) {
if (num % i == 0)
return false;
}
return true;
}
// 主函数进行质因数分解
std::vector<int> primeFactorize(int n) {
std::vector<int> factors;
while (n > 1) {
int factor = 2;
// 查找最小的质因子
while (n % factor != 0 && !isPrime(factor)) {
++factor;
}
// 将质因子添加到结果中
factors.push_back(factor);
// 更新 n
n /= factor;
}
return factors;
}
int main() {
int number;
std::cout << "Enter a number to factorize: ";
std::cin >> number;
std::vector<int> factors = primeFactorize(number);
if (factors.empty()) {
std::cout << "The number is prime." << std::endl;
} else {
std::cout << "Prime factorization of " << number << " is: ";
for (int factor : factors) {
std::cout << factor << " ";
}
std::cout << std::endl;
}
return 0;
}
```
这个程序首先定义了一个辅助函数 `isPrime()` 来检测一个数字是否为质数,然后主函数 `primeFactorize()` 使用这个函数寻找并记录所有质因子。
阅读全文