习题解析之:分解质因数
【问题描述】
分解质因数只针对合数(非质数或者非素数,不包括1), 每个合数都可以写成几个质数相乘的形式,其中每个质数都是这个合数的因数,叫做这个合数的分解质因数。
输入格式
输入一个合数
输出格式
以列表形式输出质因子,各因子升序排序
示例
输入:
20
输出:
[2, 2, 5]
【编程思路】
用循环从质数 p = 2 开始寻找 n 的所有质因子,每找到一个质因子 p(n % p == 0),将 p 加入到列表 ls ,同时将 n 除以 p,使得 n 中去掉了一个质因子 p ,这样 n 不断除以其质因子,最后 n 的值变为 1,结束循环;若整数 p 不是 n 的因子,则 p 加 1,找 n 的下一个质因子。
由于质因子是从 2 开始找的,因此在列表 ls 中各因子一定升序排列。
编写的源程序如下:
浙公网安备 33010602011771号