用C++对高次多项式因式分解的程序
时间: 2024-04-17 21:24:50 浏览: 94
下面是一个用C++编写的多项式因式解程序的示例:
```cpp
#include <iostream>
#include <vector>
struct Term {
int coefficient;
int exponent;
};
std::vector<Term> factorizePolynomial(int n) {
std::vector<Term> factors;
for (int i = 2; i * i <= n; i++) {
if (n % i == 0) {
int count = 0;
while (n % i == 0) {
count++;
n /= i;
}
factors.push_back({ i, count });
}
}
if (n > 1) {
factors.push_back({ n, 1 });
}
return factors;
}
void printFactors(const std::vector<Term>& factors) {
for (const auto& term : factors) {
std::cout << term.coefficient << "x^" << term.exponent;
if (&term != &factors.back()) {
std::cout << " * ";
}
}
std::cout << std::endl;
}
int main() {
int n;
std::cout << "Enter a polynomial: ";
std::cin >> n;
std::vector<Term> factors = factorizePolynomial(n);
std::cout << "Factors: ";
printFactors(factors);
return 0;
}
```
这个程序使用了一个`Term`结构体来表示多项式中的每一项,包括系数和指数。`factorizePolynomial`函数接受一个整数`n`,并返回一个包含多项式因子的`Term`向量。它通过遍历从2到sqrt(n)的数,找到n的所有因子,并计算每个因子的指数。如果n不为1,则将n本身作为一个因子。`printFactors`函数用于打印因子的结果。
在主函数中,程序首先从用户输入中获取一个整数作为多项式的值。然后,它调用`factorizePolynomial`函数将多项式进行因式分解,并将结果打印到控制台上。
请注意,该程序仅适用于整数系数的多项式,并且在因式分解时假设多项式的因子是素数。如果你有其他需求或疑问,请随时提问。