将一个正整数分解质因数

318 查看

//将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。

package com.imooc;
import java.util.Scanner;

public class Ques2 {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        Ques2 ques2 = new Ques2();
        //循环输入要被分解的整数
        do{                     
            int num = input.nextInt();
            System.out.print(num + "=");
            int i=2;
            int quotient=1;
            //循环输出质因数   
            do{
                if(ques2.primeNum(i)){                  
                    if(num % i == 0){
                        quotient = num/i;
                        System.out.print(i);
                        if(quotient == 1){
                            System.out.println();
                            break;
                        }else{
                            System.out.print("*");
                            num = quotient;
                        }
                    }else{
                        i++;
                    }
                }else{
                    i++;
                }
            }while(true);
        }while(true);
    }
    //判断一个整数是否为质数的方法:
    //小于3的整数中只有2为质数。大于等于3的整数a,如果全部都不能整除2到a-1之间的整数,则a为质数。
    public boolean primeNum(int a){
        if(a<3){
            if(a==2){
                return true;
            }else{
                return false;
            }
        }else{
            for(int i=2; i<a; i++){
                if(a % i !=0){
                    if(i==a-1){
                        return true;
                    }
                }else{
                    return false;
                }
            }
            return false;
        }               
    }
}