简单的方法,没有加入复杂的算法,程序的效率不高。
- /*
- * 需求: 将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
- * 思路:1.定义一个方法,方法的作用是为一个数从1开始到其本身之间求模
- * 模为0的则这个数是其质因数,将这个数加入集合。
- * 2.当模为0时,使用递归的思想继续调用此方法,传入商的值。
- * 3.当只能被其本身整除时,结束此递归循环,得的数为其质因数。
- */
- public class Test04 {
- public static void main(String[] args) {
- new GetZhiYinShu(555555);
- }
- }
- class GetZhiYinShu {
- private int number;
- private ArrayList<Integer> al = new ArrayList<Integer>();
- public GetZhiYinShu(int number) {
- super();
- this.number = number;
- getNumber(number);
- show();
- }
- public ArrayList<Integer> getAl() {
- return al;
- }
- public void getNumber(int number) {
- for (int i = 2; i <= number; i++) {
- if (number % i == 0) {
- getNumber(number / i);
- al.add(i);
- break;
- }
- }
- }
- public void show() {
- StringBuffer sb = new StringBuffer();
- for (int i = al.size() - 1; i >= 0; i--) {
- if (i != 0)
- sb.append(al.get(i) + "*");
- else
- sb.append(al.get(i));
- }
- System.out.println(number + "=" + new String(sb));
- }
- }
复制代码 |
|