簡體   English   中英

Java中使用循環的Prime分解程序

[英]Prime Factorization Program in Java Using Loops

我必須編寫一個程序,該程序從用戶處獲取一個數字,然后顯示該數字的素因。 這是我到目前為止的程序:

public static void main(String[] args) {
        int a = getInt("Give a number: ");
        int i = 0;

        System.out.println("Your prime factors are: " + primeFactorization(a, i));

    }

    public static int getInt(String prompt) {
        int input;

        System.out.print(prompt);
        input = console.nextInt();

        return input;
    }

    public static int primeFactorization(int a, int i) {
        for (i = 2; i <= a ; i++) {
            while (a % i == 0) {
                a /= i;
            }
        }
        return i;
    }

}

我不知道如何使它打印出數字列表。 任何幫助表示贊賞。

您應該返回List<Integer>而不是單個int ,並且i作為參數沒有意義。 正確的方法是

public static List<Integer> primeFactorization(int a) {
    List<Integer> list = new ArrayList<Integer>();
    for (int i = 2; i <= a ; i++) {
        while (a % i == 0) {
            list.add(i);
            a /= i;
        }
    }
    return list;
}

雖然@Paul Boddington的答案在大多數情況下(例如,如果您以后使用這些值)更好,但是對於像您這樣的簡單程序,您可以將所有因素添加到字符串中並返回該字符串。 例如:

public static String primeFactorization(int a) {
    String factors = "";
    for (int i = 2; i <= a ; i++) {
        while (a % i == 0) {
            factors += i + " ";
            a /= i;
        }
    }
    return factors;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM