用c++实现整数的标准分解式输出
时间: 2024-10-14 17:03:09 浏览: 16
整数因子分解问题C/C++实现
在C++中,你可以使用质因数分解算法来获取一个整数的标准分解式。一种常见的实现方法是使用循环和除法操作来找出最大因子,然后递归地对剩余的数进行同样的操作,直到余数为1为止。以下是一个简单的示例:
```cpp
#include <iostream>
#include <vector>
std::vector<int> prime_factors(int n) {
std::vector<int> factors;
for (int i = 2; i * i <= n; ++i) {
while (n % i == 0) {
factors.push_back(i);
n /= i;
}
}
// 如果n大于1,说明它是最后一个质因数
if (n > 1) {
factors.push_back(n);
}
return factors;
}
void print_factorization(const std::vector<int>& factors) {
if (factors.empty()) {
std::cout << "1";
} else {
for (size_t i = 0; i < factors.size(); ++i) {
std::cout << factors[i];
if (i != factors.size() - 1) {
std::cout << "^" << factors.count(factors[i]);
}
if (i != 0) {
std::cout << " * ";
}
}
}
std::cout << "\n";
}
int main() {
int number;
std::cout << "请输入一个整数:";
std::cin >> number;
std::vector<int> factor_list = prime_factors(number);
print_factorization(factor_list);
return 0;
}
```
在这个程序中,`prime_factors`函数找到给定整数的所有质因数,然后`print_factorization`函数将它们按照标准形式打印出来,即每个质因数及其指数。
阅读全文