import java.util.ArrayList;
import java.util.Scanner;
/**
题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
分析:
1.先找出正整数的所有质因数
2.将所有质因数以乘积形式表示出来
*/
public class DecompositionFactor {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个正整数:");
int nextInt = scanner.nextInt();
ArrayList<Integer> array = decomposeMathod(nextInt);
scanner.close();
if (array == null) {
System.out.println("非法输入!");
} else {
// 显示所查找出的所有质因数
System.out.println("所有质因数为:" + array);
// 将质因数以乘积形式表述出来
System.out.print(nextInt + "=");
for (int i = 0; i < array.size(); i++) {
if (i == array.size() - 1) {
System.out.print(array.get(i));
} else {
System.out.print(array.get(i) + "*");
}
}
}
}
private static ArrayList<Integer> decomposeMathod(int num) {
// 先找出所有质因数
// 创建arraylist集合存储质因数
ArrayList<Integer> arrayList = new ArrayList<>();
// 找出质因数并存入集合中
if (num == 1) {
arrayList.add(num);
return arrayList;
} else if (num > 1) {
int num0 = num;
for (int i = 0; i < num; i++) {
for (int j = 2; j <= num0; j++) {
if (num0 % j == 0) {
num0 /= j;
arrayList.add(j);
break;
}
}
}
return arrayList;
} else {
return null;
}
}
}
将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5
最新推荐文章于 2022-11-08 20:08:55 发布