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


### 题目描述补充 **题目:分解质因数** 给定一个正整数n(n > 1),要求编写一个函数来分解这个数的所有质因数,并以列表(或数组)的形式返回这些质因数。质因数分解是将一个正整数表示为若干个质数的乘积的过程,这些质数按从小到大的顺序排列,且每个质数出现的次数尽可能多。 **示例**: - 输入:`n = 36` - 输出:`[2, 2, 3, 3]` - 解释:36 = 2^2 * 3^2 **要求**: - 编写的函数应该能够处理任意大于1的正整数。 - 返回的质因数列表中的质数应该按从小到大的顺序排列。 - 每个质数出现的次数应与其在n的质因数分解中的次数一致。 ### 示例代码 #### PHP 示例 ```php function primeFactors($n) { $factors = []; for ($i = 2; $i * $i <= $n; $i++) { while ($n % $i == 0) { $factors[] = $i; $n = $n / $i; } } if ($n > 1) { $factors[] = $n; } return $factors; } // 测试 echo implode(', ', primeFactors(36)); // 输出: 2, 2, 3, 3 ``` #### Python 示例 ```python def prime_factors(n): factors = [] i = 2 while i * i <= n: if n % i: i += 1 else: n //= i factors.append(i) if n > 1: factors.append(n) return factors # 测试 print(prime_factors(36)) # 输出: [2, 2, 3, 3] ``` #### JavaScript 示例 ```javascript function primeFactors(n) { let factors = []; for (let i = 2; i * i <= n; i++) { while (n % i === 0) { factors.push(i); n = n / i; } } if (n > 1) { factors.push(n); } return factors; } // 测试 console.log(primeFactors(36)); // 输出: [2, 2, 3, 3] ``` **码小课网站中有更多相关内容分享给大家学习**,涵盖了算法设计、数据结构、编程语言进阶等多个方面,是提升编程能力的不错选择。
推荐面试题