酷代码 AI
菜单
服务商

任意输入一个正整数,要求把它拆成质因子的乘积。如 10=2*5 20=2*2*5 5=5 输入 一个数n 输出 形如:n=质数1*质数2*质数3…… 质数序列按照非下降顺序排列。以C++的形式回答

```cpp #include <iostream> using namespace std; int main() { int n; cin >> n; cout << n << "="; int divisor = 2; bool firstFactor = true; while (n > 1) { if (n % divisor == 0) { if (!firstFactor) { cout << "*"; } cout << divisor; n /= divisor; firstFactor = false; } else { divisor++; } } if (firstFactor) { cout << n; } cout << endl; return 0; } ``` 代码解释 1. 输入部分:使用`cin`从标准输入读取一个正整数`n`。 2. 质因数分解部分: - 初始化一个变量`divisor`为 2,作为最小的质数开始尝试。 - 使用`while`循环,只要`n`大于 1,就继续分解。 - 如果`n`能被`divisor`整除,说明`divisor`是`n`的一个质因数,输出`divisor`,并将`n`除以`divisor`。 - 如果`n`不能被`divisor`整除,将`divisor`加 1,继续尝试下一个数。 3. 输出格式:使用`bool`类型的变量`firstFactor`来控制输出格式,确保不会在第一个质因数前输出`*`。 4. 结束条件:当`n`变为 1 时,分解结束,程序输出结果并终止。 这样,程序就能将输入的正整数拆分成质因子的乘积并按照要求输出。 [2026-02-07 18:05:01 | AI问答 | 406点数解答]

相关提问
发财导航,免费问AI
实用工具查看更多