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

    为了熟悉加强基础练习,搞搞经典小demo..话不多说,直接贴代码,看注释。package www.test;import java.util.Scanner;

public class Resovle {
	public static void main(String[] args) {
		/**
           简单分析:
		 * 如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。 
		   如果n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。
		   如果n不能被k整除,则用k+1作为k的值,重复执行第一步。 
		 * */

		Scanner sc = new Scanner(System.in);  //创建了键盘录入对象
		System.out.println("请输入要分解的整数:");
		int num = sc.nextInt();
		System.out.print(num+"=");      //为了输出格式为:90=2*3*3*5。
		resolve(num);
		sc.close();              //记得关流
	}

	/**
      *分解方法
      *
      */
	public static void resolve(int num){
		
		for (int i = 2; i < num; i++) {
			if(num % i == 0){
				System.out.print(i+"*");
				//调用方法,判断num/i是否为素数(质数),是素数直接输出
				if(num / i >0 && isPrime(num / i)){
					System.out.print(num /i +"");
                    //不是素数,还可以分解,递归调用(调用自己);
				}else{
					resolve(num/i);
				}
				break;
			}
			
		}
		
	}
    //判断是否为素数
	private static boolean isPrime(int num) {
		for (int i = 2; i < num; i++) {
			if(num % i == 0){
				return false;
			}
		}
		return true;
	}
}