基础编程50题

【题目04】分解质因数

2017-03-25  本文已影响45人  Xplorist

【程序4】
题目:将一个正整数分解质因数。例如:输入90,打印出90=233*5。

package com.share.test01_10;

/**
 * 【程序4】题目:<br>
 * 将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。 
 * 
 * @author brx
 *
 */
public class Test04 {
    public static void main(String[] args) {
        test(90);
    }

    /**
     * 思路:将一个数n,与从2~n-1依次相除,如果能够被其中的2整除,将这个数继续整除直到不能被2整除,才继续除以3,依次类推<br>
     * 关键点:<br>
     * 1.将整除后的数赋给n,在整除后将除数减少1,进入下次循环时再次判断该除数,如果不能则进入循环将除数加1,让这个行为反复执行,而省掉了递归。
     * 2.因为从2开始一直除直到不能被2除,说明后面就是奇数了,接下来是被3整除直到不能被3整除,依次下去,直接实现了所有的除数是质数,
     * 不用去判断除数是不是质数了.<br>
     * 所以这种思路很巧妙,省去了递归和除数的质数判断。
     */
    public static void test(int n) {
        System.out.print(n + "=");
        for (int i = 2; i < n; i++) {
            if (n % i == 0) {
                System.out.print(i + "x");
                n = n / i;
                i--;
            }
        }
        System.out.println(n);
    }

}

上一篇 下一篇

猜你喜欢

热点阅读