当前位置: 面试刷题>> 因式分解 (经典算法题500道)


题目描述补充

题目: 编写一个程序,实现一个简单的因式分解算法。该程序将接收一个正整数作为输入,并输出该数的所有质因数分解结果。如果输入的数是一个质数,则直接输出该数本身和“是质数”的说明。如果输入的数小于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 是质数

码小课网站中有更多相关内容分享给大家学习,希望这些示例代码和描述能够帮助你理解并实现因式分解的算法。

推荐面试题