美文网首页基础编程50题
【题目04】分解质因数

【题目04】分解质因数

作者: Xplorist | 来源:发表于2017-03-25 15:14 被阅读45次

    【程序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);
        }
    
    }
    
    

    相关文章

      网友评论

        本文标题:【题目04】分解质因数

        本文链接:https://www.haomeiwen.com/subject/ulscottx.html