天天看點

分解質因數,Java,

分解質因數:

根據數論的知識可知,任何一個合數都可以寫成幾個質數相乘的形式,這幾個質數都叫做這個合數的質因數。例如,24=2*2*2*3。把一個合數寫成幾個質數相乘的形式,稱為分解質因數。對于一個質數,它的質因數可以是本身。

請程式設計寫一個程式實作分解質因數。

import java.util.Scanner;

/**
 * 
 * 分解質因數。根據數論的知識可知,任何一個合數都可以寫成幾個質數相乘的形式,這幾個質數都叫做這個合數的質因數。
 * 例如,24=2*2*2*3。把一個合數寫成幾個質數相乘的形式,稱為分解質因數。
 * 對于一個質數,它的質因數可以是本身。請程式設計寫一個程式實作分解質因數。
 *
 */
public class PrimeFactorization {

	public static void main(String[] args) {
		Scanner input=new Scanner(System.in);
		int num=input.nextInt();
		input.close();
		int temp=1;
		int n=num;
		String s="";
		for (int i = 2; i <= n; i++) {
			if (temp==num) {
				break;
			}
			if(isPrime(i)){
				while (n%i==0) {
					temp*=i;
					n/=i;
					if(temp==num){
						s+=String.valueOf(i);
						break;
					}else{
						s+=String.valueOf(i)+"*";
					}
				}
			}
		}
		System.out.println(num+"="+s);
	}
	public static boolean isPrime(int i){
		for (int j = 2; j <= i/2; j++) {
			if(i%j==0){
				return false;
			}
		}
		return true;
	}

}