当前位置: 面试刷题>> 因式分解 (经典算法题500道)
### 题目描述补充
**题目**: 编写一个程序,实现一个简单的因式分解算法。该程序将接收一个正整数作为输入,并输出该数的所有质因数分解结果。如果输入的数是一个质数,则直接输出该数本身和“是质数”的说明。如果输入的数小于2,则输出错误提示。
### 示例代码
以下是使用PHP、Python和JavaScript编写的示例代码,这些代码均实现了上述要求。
#### PHP 示例
```php
1) {
$factors[] = $n;
}
if (count($factors) == 1) {
return $factors[0] . " 是质数";
} else {
return "因式分解结果: " . implode(' * ', $factors);
}
}
// 测试
echo factorize(100); // 输出: 因式分解结果: 2 * 2 * 5 * 5
echo "\n";
echo factorize(7); // 输出: 7 是质数
?>
```
#### Python 示例
```python
def factorize(n):
if n < 2:
return "错误:请输入一个大于或等于2的整数。"
factors = []
for i in range(2, int(n**0.5) + 1):
while n % i == 0:
factors.append(str(i))
n = n // i
if n > 1:
factors.append(str(n))
if len(factors) == 1:
return factors[0] + " 是质数"
else:
return "因式分解结果: " + ' * '.join(factors)
# 测试
print(factorize(100)) # 输出: 因式分解结果: 2 * 2 * 5 * 5
print(factorize(7)) # 输出: 7 是质数
```
#### JavaScript 示例
```javascript
function factorize(n) {
if (n < 2) {
return "错误:请输入一个大于或等于2的整数。";
}
let factors = [];
for (let i = 2; i <= Math.sqrt(n); i++) {
while (n % i === 0) {
factors.push(i);
n = n / i;
}
}
if (n > 1) {
factors.push(n);
}
if (factors.length === 1) {
return `${factors[0]} 是质数`;
} else {
return `因式分解结果: ${factors.join(' * ')}`;
}
}
// 测试
console.log(factorize(100)); // 输出: 因式分解结果: 2 * 2 * 5 * 5
console.log(factorize(7)); // 输出: 7 是质数
```
**码小课网站中有更多相关内容分享给大家学习**,希望这些示例代码和描述能够帮助你理解并实现因式分解的算法。