1. 程式人生 > >java 分解質因數 基礎增強

java 分解質因數 基礎增強

等於 sca highlight 執行 n) 例如 println 遞歸調用 system

題目:將一個正整數分解質因數。例如:輸入90,打印出90=2*3*3*5。

    為了熟悉加強基礎練習,搞搞經典小demo..話不多說,直接貼代碼,看註釋。package www.test;import java.util.Scanner;


public class Resovle {
	public static void main(String[] args) {
		/**
           簡單分析: * 如果這個質數恰等於n,則說明分解質因數的過程已經結束,打印出即可。 如果n能被k整除,則應打印出k的值,並用n除以k的商,作為新的正整數你n,重復執行第一步。 如果n不能被k整除,則用k+1作為k的值,重復執行第一步。 * */
Scanner sc = new Scanner(System.in);  //創建了鍵盤錄入對象 System.out.println("請輸入要分解的整數:"); int num = sc.nextInt(); System.out.print(num+"=");      //為了輸出格式為:90=2*3*3*5。 resolve(num); sc.close();              //記得關流 }
/**
      *分解方法
      *
      */
public static void resolve(int num){ for (int i = 2; i < num; i++) { if(num % i == 0){ System.out.print(i+"*"); //調用方法,判斷num/i是否為素數(質數),是素數直接輸出 if(num / i >0 && isPrime(num / i)){ System.out.print(num /i +"");
                    //不是素數,還可以分解,遞歸調用(調用自己); }else{ resolve(num/i); } break; } } }     //判斷是否為素數技術分享
private static boolean isPrime(int num) { for (int i = 2; i < num; i++) { if(num % i == 0){ return false; } } return true; } }

  

java 分解質因數 基礎增強