<!--StartFragment -->
package web;
public class ResolvePrime {
//不能声明为final的,否则后期无法修改
private static int minPrime = 2;
public static void main(String args[]){
int forResole = 84;
System.out.print(forResole+" 的分解质因数是 :");
getFactor(forResole);
System.out.println("*****************************");
}
/**
* 1、 如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
* 2、 如果n>k,但n能被k整除,则应打印出k的值,并用n除以k得到商,作为新的正整 数n,重复执行第一步。
* 3、 如果n不能被k整除,则用k+1作为k的值,重复执行第一步
* @param i
* @return
*/
public static void getFactor(int i){
while(true){
if(i==minPrime){
System.out.println(i+"\t");
break;
}else if(i%minPrime==0){
System.out.print(minPrime+"\t");
i = i/minPrime;
getFactor(i);
break;
}else if(i%minPrime !=0){
//小的质数无法整除,就需要递增最小质数
minPrime++;
getFactor(i);
break;
}
}
}
}
public class ResolvePrime {
//不能声明为final的,否则后期无法修改
private static int minPrime = 2;
public static void main(String args[]){
int forResole = 84;
System.out.print(forResole+" 的分解质因数是 :");
getFactor(forResole);
System.out.println("*****************************");
}
/**
* 1、 如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
* 2、 如果n>k,但n能被k整除,则应打印出k的值,并用n除以k得到商,作为新的正整 数n,重复执行第一步。
* 3、 如果n不能被k整除,则用k+1作为k的值,重复执行第一步
* @param i
* @return
*/
public static void getFactor(int i){
while(true){
if(i==minPrime){
System.out.println(i+"\t");
break;
}else if(i%minPrime==0){
System.out.print(minPrime+"\t");
i = i/minPrime;
getFactor(i);
break;
}else if(i%minPrime !=0){
//小的质数无法整除,就需要递增最小质数
minPrime++;
getFactor(i);
break;
}
}
}
}