分解質因數——MOOC《零基礎學Java語言》第7周程式設計題1
阿新 • • 發佈:2019-01-07
題目內容:
每個非素數(合數)都可以寫成幾個素數(也可稱為質數)相乘的形式,這幾個素數就都叫做這個合數的質因數。比如,6可以被分解為2x3,而24可以被分解為2x2x2x3。
現在,你的程式要讀入一個[2,100000]範圍內的整數,然後輸出它的質因數分解式;當讀到的就是素數時,輸出它本身。
輸入格式:
一個整數,範圍在[2,100000]內。
輸出格式:
形如:
n=axbxcxd
或
n=n
所有的符號之間都沒有空格,x是小寫字母x。
輸入樣例:
18
輸出樣例:
18=2x3x3
import java.util.Scanner; public class Main { static void split(int n){ int count = 0; int a[] = new int[n]; for(int i=2; i<=n;i++) { boolean isPrime = true; for(int j=2;j<=i;j++) { if(i%j == 0 && i!=j) isPrime = false; } if(isPrime) { a[count] = i; count++; } } System.out.print(n+"="); for(int i=0;i<n;i++) { while(n%a[i]== 0) { n=n/a[i]; if(n==1) { System.out.print(a[i]); } else{ System.out.print(a[i]+"x"); } } if(n==1) break; } } /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Scanner in = new Scanner(System.in); int he = in.nextInt(); split(he); } }