输入一个整数n(2≤n≤10000),输出它的所有的素数因子。用函数 int prime(int num)来判断整数num是否为素数。
时间: 2024-10-14 08:10:39 浏览: 22
Python编程判断一个正整数是否为素数的方法
5星 · 资源好评率100%
要实现这个功能,首先需要编写一个名为`prime`的函数来检查一个整数是否为素数。然后我们可以创建另一个函数`factorize`来找到输入整数的所有素数因子。
```cpp
// 定义 prime 函数,用于判断整数 num 是否为素数
bool prime(int num) {
if (num <= 1) return false;
for (int i = 2; i * i <= num; i++) {
if (num % i == 0) return false;
}
return true;
}
// 定义 factorize 函数,找出整数 n 的所有素数因子
vector<int> primeFactors(int n) {
vector<int> factors;
for (int i = 2; i * i <= n; i++) { // 遍历到 sqrt(n)
while (n % i == 0 && prime(i)) { // 如果 i 是素数,并且 n 可以被 i 整除
factors.push_back(i);
n /= i; // 更新 n 为 n / i
}
}
// 检查 n 是否大于 1 并且是质数
if (n > 1 && prime(n))
factors.push_back(n);
return factors;
}
```
这个算法的基本思想是从 2 开始遍历到 `sqrt(n)`,如果发现某个数可以整除 `n` 并且它是素数,就将其添加到因子列表中,并将 `n` 更新为 `n` 除以该因子的结果。最后,如果 `n` 还大于 1 而且是素数,也把它添加到因子列表。
阅读全文