c++如何找到一个数的所有质因子
时间: 2024-09-22 22:05:29 浏览: 53
在 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 number) {
std::vector<int> factors;
for (int i = 2; i * i <= number; ++i) {
while (number % i == 0 && isPrime(i)) {
factors.push_back(i);
number /= i;
}
}
// 如果number还有剩余并且大于1,说明它是最后一个质因子
if (number > 1)
factors.push_back(number);
return factors;
}
int main() {
int input_number;
std::cout << "请输入一个整数:";
std::cin >> input_number;
std::vector<int> result = primeFactors(input_number);
std::cout << "数字 " << input_number << "'s prime factors are: ";
for (const auto &factor : result) {
std::cout << factor << " ";
}
return 0;
}
```
这个程序首先检查每个数字是否为质数,然后通过不断地将输入的数`number`除以它的最小质因数直到它不能再被整除,收集所有的质因子。如果最后`number`还大于1,说明它本身就是剩下的质因子。
阅读全文