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<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;
}
}
}
转载请注明原文地址: https://ju.6miu.com/read-24836.html