【C/C++】任意大于1的整数分解成素数因子乘积的形式
时间: 2024-01-22 08:03:54 浏览: 108
整数因子分解问题C/C++实现
可以使用质因数分解的方法来将一个任意大于1的整数分解成素数因子乘积的形式。以下是一个用C++实现的代码示例:
```c++
#include <iostream>
#include <vector>
using namespace std;
vector<int> primeFactorization(int n) {
vector<int> factors;
for (int i = 2; i * i <= n; i++) {
while (n % i == 0) {
factors.push_back(i);
n /= i;
}
}
if (n > 1) factors.push_back(n);
return factors;
}
int main() {
int n;
cout << "请输入一个大于1的整数:";
cin >> n;
vector<int> factors = primeFactorization(n);
cout << n << "的素数因子分解结果为:";
for (int i = 0; i < factors.size(); i++) {
if (i > 0) cout << "×";
cout << factors[i];
}
cout << endl;
return 0;
}
```
该代码先定义了一个名为`primeFactorization`的函数,它接受一个整数`n`作为参数,并返回一个包含`n`的素数因子的向量。该函数使用了质因数分解的方法,从2开始循环到$\sqrt{n}$,若$n$能被$i$整除,则将$i$加入素因子向量中,并将$n$除以$i$,再继续判断能否继续被$i$整除。最后,如果$n$大于1,则说明$n$本身就是一个素数,将其加入素因子向量中。
在主函数中,先读入一个大于1的整数`n`,然后调用`primeFactorization`函数得到素数因子向量,最后输出结果即可。
阅读全文