输入一个n,输出它所有的素数因子,用c++写
时间: 2024-11-06 11:13:41 浏览: 104
在C++中,为了找出给定整数n的所有素数因子,你可以编写一个函数,该函数使用循环和条件判断来检测每个数字是否是素数,并检查它是否能整除输入的n。下面是一个简单的示例:
```cpp
#include <iostream>
#include <vector>
bool is_prime(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> prime_factors(int n) {
std::vector<int> factors;
for (int i = 2; i * i <= n; i++) {
while (n % i == 0 && is_prime(i)) {
factors.push_back(i);
n /= i;
}
}
if (n > 1) // 如果n还有剩余,说明最后一个因子就是n本身
factors.push_back(n);
return factors;
}
int main() {
int n;
std::cout << "请输入一个正整数: ";
std::cin >> n;
std::vector<int> factor_list = prime_factors(n);
std::cout << "输入的数 " << n << " 的素数因子有: ";
for (const auto& factor : factor_list) {
std::cout << factor << " ";
}
阅读全文
相关推荐


















