Java小例子:分解质因数

这个例子演示如何利用递归来完成分解质因数。

import java.util.List;import java.util.ArrayList;/** * 分解质因数 */public class GetFacTor {    public static void main(String[] args) {        List facTors = getFacTors(5555566666L, 2);        System.out.println(facTors);    }    /**     * 通过递归实现分解质因数     *     * @param n      要分解的数字     * @param facTor 起始因子     *     * @return 分解结果     */    private static List getFacTors(long n, long facTor)  {        // 不断增大 facTor 直到能整除n        while (n % facTor != 0 && facTor < n)  {            // 得到 2,3,5,7,9,11,13,...            facTor = facTor < 2 ? 2 : facTor == 2 ?  3 : facTor + 2;        }        List result;        if (facTor >= n) {  // 因子已经涨到和 n 一样大,说 明 n 本身就是因子。这时递归完成。            result = new ArrayList();        } else {            // 因子能够整除 n,于是继 续分解除以因子后的结果            result = getFacTors(n / facTor, facTor); // 向 下递归        }        result.add(facTor);        return result;    }}

联系朋友别欠费,天空辽阔任你飞,再多困难别后退! “

Java小例子:分解质因数

相关文章:

你感兴趣的文章:

标签云: