1. 程式人生 > >分解質因數——MOOC《零基礎學Java語言》第7周程式設計題1

分解質因數——MOOC《零基礎學Java語言》第7周程式設計題1

題目內容:

每個非素數(合數)都可以寫成幾個素數(也可稱為質數)相乘的形式,這幾個素數就都叫做這個合數的質因數。比如,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);
	}

}