Java實現將一個正整數分解質因數

 * 題目:將一個正整數分解質因數。例如:輸入90,打印出90=2*3*3*5。
 * 分析:對n進行分解質因數,應先找到一個最小的質數k,然後按下述步驟完成:
 *(1)如果這個質數恰等於n,則說明分解質因數的過程已經結束,打印出即可。
 *(2)如果n>k,但n能被k整除,則應打印出k的值,並用n除以k的商,作爲新的正整數你n,重複執行第一步。
 *(3)如果n不能被k整除,則用k+1作爲k的值,重複執行第一步。
 *這個題目很明顯是要用遞歸算法來實現的,打印“*”有些技巧,但也很容易解決,程序如下:

import java.util.Scanner;
public class Yinshifenjie {

    public static void fenjie(int n) {
        for (int i=2;i <=n;i++) {
            if (i == n) {
                System.out.print(i);
                return;
            }
            if (n > i && (n % i == 0)) {
                System.out.print(i+"*");
                fenjie(n / i);
                break;
            } 
        }
    }
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.println("請輸入一個整數:");
        int n = input.nextInt();
        fenjie(n);
    }
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章