题目描述补充
题目: 编写一个程序,实现一个简单的因式分解算法。该程序将接收一个正整数作为输入,并输出该数的所有质因数分解结果。如果输入的数是一个质数,则直接输出该数本身和“是质数”的说明。如果输入的数小于2,则输出错误提示。
示例代码
以下是使用PHP、Python和JavaScript编写的示例代码,这些代码均实现了上述要求。
PHP 示例
<?php
function factorize($n) {
if ($n < 2) {
return "错误:请输入一个大于或等于2的整数。";
}
$factors = [];
for ($i = 2; $i <= sqrt($n); $i++) {
while ($n % $i == 0) {
$factors[] = $i;
$n = $n / $i;
}
}
if ($n > 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 示例
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 示例
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 是质数
码小课网站中有更多相关内容分享给大家学习,希望这些示例代码和描述能够帮助你理解并实现因式分解的算法。