输入一个INT类型的数字 然后就会输出相乘的算法

来源:百度知道 编辑:UC知道 时间:2024/05/31 12:22:06
我现在键盘输入一个INT类型的数字 然后就会输出相乘的算法
比如 输入18 就会打印 18=2*3*3 该怎么判断?

我写了一段代码,可能写得不好,见谅了.不过楼主要求的功能应该实现的没有问题了.注:不考虑负数
public static void main(String[] args) {
int num = new java.util.Scanner(System.in).nextInt();
//输入的值就存在num中了
java.util.List<Integer> gene = new java.util.ArrayList<Integer>();
//定义一个ArrayList存放num的因子,命名为gene
int numTemp = num;//这个用于计算,会改变值
//把numTemp分解,并加入gene
for(int i=2;i<numTemp;i++)
if(numTemp%i==0){
gene.add(i);
numTemp/=i;
i=1;
}
//剩下一个无法被其他数整除的数,也是num的一个因子,所以也加入gene
gene.add(numTemp);
//以下只是取出gene中的各个元素进行字符串的拼接,以便打印出楼主所说的格式
StringBuffer sb = new StringBuffer();
sb.append(num+" = ");
for(int i = 0;i<gene.size();i++){
sb.append(gene.get(i));
if(i!=gene.size()-1)
sb.append(" * ");
}
String result = sb.toString();
System.out.println(result);
}

我也写了一个,如果输入36,输出为:36=1*2*2*3*3

import java.util.*;

public class Test{