快速业务通道

Java小例子:分解质因数 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-17

Java小例子:分解质因数

时间:2011-04-05 csdn博客 捏造的信仰

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

import java.util.List; import java.util.ArrayList; /**  * 分解质因数  */ public class GetFactor {     public static void main(String[] args) {         List<Long> factors = getFactors(5555566666L, 2);         System.out.println(factors);     }     /**      * 通过递归实现分解质因数      *      * @param n      要分解的数字      * @param factor 起始因子      *      * @return 分解结果      */     private static List<Long> 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<Long> result;         if (factor >= n) {  // 因子已经涨到和 n 一样大,说 明 n 本身就是因子。这时递归完成。             result = new ArrayList<Long>();         } else {            // 因子能够整除 n,于是继 续分解除以因子后的结果             result = getFactors(n / factor, factor); // 向 下递归         }         result.add(factor);         return result;     } }

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号