java 分解質因數 基礎增強
阿新 • • 發佈:2017-07-31
等於 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 分解質因數 基礎增強