借鉴自我的朋友,http://my.csdn.net/raalghul。而他的qq也是需要输入他qq号的质因子才能加他的,所以很有趣,我想他讨教了求质因子的方法,然后加了他,哈哈。
方法:
按正常方法找一个数的因子,用一个for循环,遍历到sqrt(num)前,一个个看能否除的通。
这里有点不一样,找到一个质因子后,num = num/i,减小了num的长度,直接加快了效率。为什么可以这么做,因为比如64,2的6次。如果你这样的话,会直接把64除成1,一次性把2的因子全部消除了。所以这样的目的就是一次性彻底消除一类因子,大大缩小num长度。只需要在循环完后判断num是不是因子即可,因为你执行的没有原来长了,所以num可能会被你漏掉。
代码:
private static List<Integer> getPrimeFactor(int num) { List<Integer> primeFactorList = new ArrayList<>();