【C/C++】任意大于1的整数分解成素数因子乘积的形式
时间: 2024-01-22 10:03:54 浏览: 19
以下是一个 C++ 的代码示例,可以将任意大于1的整数分解成素数因子乘积的形式:
```c++
#include <iostream>
#include <vector>
using namespace std;
// 判断一个数是否为素数
bool isPrime(int n) {
if (n <= 1) {
return false;
}
for (int i = 2; i * i <= n; i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
// 分解质因数
vector<int> primeFactorization(int n) {
vector<int> factors;
for (int i = 2; i <= n; i++) {
if (isPrime(i)) {
while (n % i == 0) {
factors.push_back(i);
n /= i;
}
}
}
return factors;
}
int main() {
int n;
cout << "请输入一个大于1的整数:" << endl;
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;
}
```
运行程序后,输入一个大于1的整数,程序会输出该数的素数因子乘积的形式。例如,输入 84,程序输出:
```
84 = 2 × 2 × 3 × 7
```