因此,我的任務是在一系列數字(用戶輸入)中查找所有「幻數」。幻數是一個數字,其因素(除本身之外)總和爲該數字。所以6將是一個神奇的數字,因爲它除了它本身之外的其他因素是1,2和3,總和爲6.我已經盯着這段代碼一段時間了,並且無法弄清楚爲什麼它不會打印出來神奇的數字。任何幫助,將不勝感激。java中的「Magic Number」練習
public class MagicNumber {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.print("What is the top of the range?");
int range = IO.readInt();
if (range <= 0) {
IO.reportBadInput();
}
int sumOfFactors = 0;
for (int i = 1 ; i <= range ; i++) {
for (int m = 1 ; m < i; m++) {
if (i % m == 0) {
sumOfFactors = sumOfFactors + m;
}
if (sumOfFactors == i) {
System.out.println(i);
}
}
}
}
}
它不要直視,*** ***調試它。要麼通過調試器運行它,要麼通過println語句慷慨地發現它的行爲表現。 –
出於好奇,這個屬性通常被稱爲[完美數字](http://en.wikipedia.org/wiki/Perfect_number)?例如,28的主要因素是2(重數2)和7,但是28的正確因數是1,2,4,7和14(其總和爲28)。 28是「神奇數字」嗎? –
我可以看到的一件事是,您不會將sumOfFactors重置爲零。 –