本文實例講述了Java實現(xiàn)整數(shù)分解質(zhì)因數(shù)的方法。分享給大家供大家參考,具體如下:
題目內(nèi)容:
每個非素數(shù)(合數(shù))都可以寫成幾個素數(shù)(也可稱為質(zhì)數(shù))相乘的形式,這幾個素數(shù)就都叫做這個合數(shù)的質(zhì)因數(shù)。
比如,6可以被分解為2x3,而24可以被分解為2x2x2x3。
現(xiàn)在,你的程序要讀入一個[2,100000]范圍內(nèi)的整數(shù),然后輸出它的質(zhì)因數(shù)分解式;當(dāng)讀到的就是素數(shù)時,輸出它本身。
輸入格式:
一個整數(shù),范圍在[2,100000]內(nèi)。
輸出格式:
形如:
n=axbxcxd
或
n=n
所有的符號之間都沒有空格,x是小寫字母x。
輸入樣例:
18
輸出樣例:
18=2x3x3
代碼示例:
import java.util.Scanner; public class Main { public static boolean isPrime(int i) { boolean isPrime = true; //除到i的平方根就可以判斷 for (int j = 2; j<=Math.sqrt(i);j++) { if(i%j==0) isPrime = false; } return isPrime; } public static void main(String[] args) { // TODO Auto-generated method stub System.out.println("創(chuàng)新互聯(lián) - 分解質(zhì)因數(shù)測試:"); Scanner in = new Scanner(System.in); int n = in.nextInt(); String out = n + "="; if(isPrime(n)) { out = out+ n; } else { while(n!=1) { for(int j=2;j<=n;j++) { //對最后一個進(jìn)行特殊處理 if(j==n) { n=1; out = out + j; break; } if(n%j==0) { n=n/j; out = out + j+"x"; break; } } } } System.out.println(out); in.close(); } }