问题描述:
大于1的正整数n可以分解为n=x1*x2*…*xn。例如,当n=12时,共有以下8种分解方法:
12=12
12=6*2
12=4*3
12=3*4
12=3*2*2
12=2*6
12=2*3*2
12=2*2*3
编程任务:
给定正整数n,试计算n有多少种不同的分解模式。
代码演示:
import java.util.Scanner;
/**
* 整数因子分解
* @author Administrator
*
*/
public class IntegerDivide {
int n;
static int q=0;
String content;
public IntegerDivide(int n){
this.n=n;
this.divide(n);
}
/**
* 整数分割函数
* @param n
*/
void divide(int n){
if(n==1){
q++;
}else{
for(int i=2;i<=n;i++){
if(n%i==0){
divide(n/i);
}
}
}
}
public static void main(String[] args) {
System.out.println("请输入一个数:");
Scanner sc=new Scanner(System.in);
int num=sc.nextInt();
IntegerDivide id=new IntegerDivide(num);
System.out.println(id.q);
}
}