本文實例講述了Java實現(xiàn)整數(shù)分解質(zhì)因數(shù)的方法。分享給大家供大家參考,具體如下:
成都創(chuàng)新互聯(lián)公司客戶idc服務(wù)中心,提供溫江服務(wù)器租用、成都服務(wù)器、成都主機(jī)托管、成都雙線服務(wù)器等業(yè)務(wù)的一站式服務(wù)。通過各地的服務(wù)中心,我們向成都用戶提供優(yōu)質(zhì)廉價的產(chǎn)品以及開放、透明、穩(wěn)定、高性價比的服務(wù),資深網(wǎng)絡(luò)工程師在機(jī)房提供7*24小時標(biāo)準(zhǔn)級技術(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(); } }