关于质因数分解算法的不同语言实现,通过实例来看不同语言的差异
什么是质因数算法?
即任意一个合数可以分解为多个质数相乘。例如:
20 = 2 * 2 * 5
45 = 3 * 3 * 5
210 = 2 * 3 * 5 * 7
520 = 2 * 2 * 2 * 5 * 13
按数学运算:列竖式或左右分解,拿能被整除的最小的素数做除数,不断整除得到新的得数,最后把所有的除数和最后的得数连起来就是。
算法基本思路
除数的平方小于等于被分解数时,说明可以分解。除数从最小的质数2开始,不断递增,直到无法分解。
先从最小的质数2开始整除被分解数
当能够整除时,说明分解成功,将整除后的得数作为新被分解数继续分解
继续从2开始整除,如果2无法整除,则递加到新的质数作为除数
直到将数字分解完,也就是递增数的平方大于被分解数时为止
代码实现思路
先设立一个除数,从最小的质数开始,也就是2;
当能够被当前除数整除时,该除数就是因数,将原数字设为被整除后的结果;
继续从该除数开始整除新的结果,并不断循环;
当无法被整除时,则递增除数,得到新的除数,继续第2步;
直到除数的平方大于要分解的值,终止循环。
最后