整数因子的分解问题--java
2013-11-15 20:07
330 查看
问题描述:
大于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);
}
}
大于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);
}
}
相关文章推荐
- java语言实现:数论经典问题 除法表达 ,无平方因子数 ,直线上的点,同余与模算术 大整数取模 幂取模,模线性方程
- 1717: 整数因子分解问题
- SDUT 1722-整数因子分解问题(因子分解)
- 整数因子分解问题
- 整数因子分解问题
- 整数因子分解问题
- sdut-1722整数因子分解问题
- 整数因子分解问题
- 整数因子分解问题
- 整数因子分解问题
- 整数因子分解问题 SDUT
- 递归算法编程整数因子分解问题的递归算法
- 南邮 OJ 1219 整数因子分解问题
- 整数因子分解问题
- 整数因子分解问题
- 整数因子分解问题
- 整数因子分解问题
- 整数因子分解问题
- 整数因子分解问题--递归--动态规划
- 0048算法笔记——【随机化算法】拉斯维加斯随机化算法求解整数因子分解中的因子分割问题