[英]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.