public void divide(int n) { if(n <= 0){ System.out.print("参数错误"); return; } int limit = (int)(Math.sqrt((double)n)); if(1 == n) { System.out.print("1 * 1"); return; } int i = 2; while(i <= limit && 1 != n ){ if(isPrime(i) && 0 == n % i) { n = n/i; if(1 == n) { System.out.print(i); break; } else { System.out.print(i + "*"); } } else { i ++; } } } public boolean isPrime(int n) { int limit = (int)Math.sqrt((double)n); for (int i = 2; i <= limit; i ++) { if(0 == n % i) { return false;//不是素数 } } return true;//是素数 } 思路:判断i是否是质数,是用n整除这个质数得到新的n,直到不能整除,否则 i+1在1==n时候结束 输出结果:n=12时,2*2*3