Java黑皮书课后题第10章:*10.5(显示素数因子)编写一个程序,提示用户输入一个正整数,然后以降序显示它的所有最小因子
生活随笔
收集整理的這篇文章主要介紹了
Java黑皮书课后题第10章:*10.5(显示素数因子)编写一个程序,提示用户输入一个正整数,然后以降序显示它的所有最小因子
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
*10.5(顯示素數因子)編寫一個程序,提示用戶輸入一個正整數,然后以降序顯示它的所有最小因子
- 題目
- 程序
- 破題
- 代碼
- Test5.java
- Test5_StackOfIntegers.java
- 運行實例
題目
程序
Test5.java:測試程序
Test5_StackOfIntegers.java:存儲因子
破題
題目第二行末尾“使用…類存儲因子”,所以可以看出,除了最后排序之外,大部分功能的完成都是在StackfOfIntegers類中實現
而多個同種元素從小到大排序,非常適合數組完成
代碼
Test5.java
import java.util.Arrays; import java.util.Scanner;public class Test5 {public static void main(String[] args) {Scanner input = new Scanner(System.in);System.out.println("輸入一個整數:");int num = input.nextInt();Test5_StackOfIntegers soi = new Test5_StackOfIntegers(num);int[] arr = soi.getStack();Arrays.sort(arr);for (int i = arr.length - 1 ; i >= 0 ; i--){System.out.print(arr[i] + " ");}} }Test5_StackOfIntegers.java
public class Test5_StackOfIntegers {int num = 0;public Test5_StackOfIntegers(int num){this.num = num;}public int[] getStack(){int[] arr = new int[0], temp;int count = 0;for (int i = 2 ; i <= num ; i++){if (num % i == 0){temp = new int[count+1];for (int index = 0 ; index < count ; index++){temp[index] = arr[index];}arr = temp;arr[count++] = i;num /= i;i = 1;}}return arr;} }運行實例
輸入一個整數: 120 5 3 2 2 2總結
以上是生活随笔為你收集整理的Java黑皮书课后题第10章:*10.5(显示素数因子)编写一个程序,提示用户输入一个正整数,然后以降序显示它的所有最小因子的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java黑皮书课后题第10章:10.4(
- 下一篇: Java黑皮书课后题第10章:*10.6