【C/C++】任意大于1的整数分解成素数因子乘积的形式
时间: 2024-01-22 21:04:00 浏览: 84
整数因子分解问题C/C++实现
以下是一个 C++ 的代码示例,可以将任意大于1的整数分解成素数因子乘积的形式:
```cpp
#include <iostream>
#include <cmath>
using namespace std;
void prime_factorization(int n) {
while (n % 2 == 0) {
cout << 2 << " ";
n /= 2;
}
for (int i = 3; i <= sqrt(n); i += 2) {
while (n % i == 0) {
cout << i << " ";
n /= i;
}
}
if (n > 2) {
cout << n << " ";
}
}
int main() {
int n;
cout << "请输入一个大于1的整数: ";
cin >> n;
cout << n << "的素数因子分解结果为: ";
prime_factorization(n);
return 0;
}
```
该程序中的 `prime_factorization` 函数接受一个整数参数 `n`,并将其分解成素数因子乘积的形式输出。具体实现思路是,先将 `n` 中的所有 2 因子全部除去,然后从 3 开始,每次从小到大取一个奇数进行判断,如果是 `n` 的因子,则输出该因子并将 `n` 除以该因子,直到 `n` 变为 1 或者 `n` 的最大质因子。最后,如果 `n` 仍然大于 2,则说明 `n` 是一个大于 2 的质数,直接输出即可。
阅读全文