黑马程序员技术交流社区

标题: 求质因数的简单方法 [打印本页]

作者: 夜写意    时间: 2015-7-18 11:00
标题: 求质因数的简单方法
简单的方法,没有加入复杂的算法,程序的效率不高。
  1. /*
  2. * 需求: 将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
  3. * 思路:1.定义一个方法,方法的作用是为一个数从1开始到其本身之间求模
  4. *                         模为0的则这个数是其质因数,将这个数加入集合。
  5. *                 2.当模为0时,使用递归的思想继续调用此方法,传入商的值。
  6. *                 3.当只能被其本身整除时,结束此递归循环,得的数为其质因数。
  7. */
  8. public class Test04 {

  9.         public static void main(String[] args) {
  10.                 new GetZhiYinShu(555555);
  11.         }
  12. }

  13. class GetZhiYinShu {
  14.         private int number;
  15.         private ArrayList<Integer> al = new ArrayList<Integer>();

  16.         public GetZhiYinShu(int number) {
  17.                 super();
  18.                 this.number = number;
  19.                 getNumber(number);
  20.                 show();
  21.         }

  22.         public ArrayList<Integer> getAl() {
  23.                 return al;
  24.         }


  25.         public void getNumber(int number) {
  26.                 for (int i = 2; i <= number; i++) {
  27.                         if (number % i == 0) {
  28.                                 getNumber(number / i);
  29.                                 al.add(i);
  30.                                 break;
  31.                         }
  32.                 }
  33.         }

  34.         public void show() {
  35.                 StringBuffer sb = new StringBuffer();
  36.                 for (int i = al.size() - 1; i >= 0; i--) {
  37.                         if (i != 0)
  38.                                 sb.append(al.get(i) + "*");
  39.                         else
  40.                                 sb.append(al.get(i));
  41.                 }
  42.                 System.out.println(number + "=" + new String(sb));
  43.         }
  44. }
复制代码





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2