将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5

    xiaoxiao2021-03-25  135

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

    最新回复(0)