c++怎么用bool求质因数
时间: 2024-10-20 21:19:30 浏览: 19
在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> primeFactors(int n) {
std::vector<int> factors;
for (int i = 2; i * i <= n; ++i) {
while (n % i == 0 && isPrime(i)) { // 当i能整除n且i本身是质数
factors.push_back(i);
n /= i; // 更新n,去除已找到的因子
}
}
// 如果n还有质因数,添加到结果中(如果n大于1)
if (n > 1 && isPrime(n))
factors.push_back(n);
return factors;
}
int main() {
int number;
std::cout << "请输入一个整数: ";
std::cin >> number;
std::vector<int> factors = primeFactors(number);
std::cout << "质因数分解: ";
for (const auto &factor : factors) {
std::cout << factor << " ";
}
std::cout << std::endl;
return 0;
}
```
这个程序首先定义了一个辅助函数`isPrime()`检查输入数字是否为质数,然后在`primeFactors()`函数中循环寻找质因数,并通过`while`循环不断分解直到n不再是当前质因数的倍数。
阅读全文