所以我的任务是找到一个数字范围内的所有“幻数”(由用户输入)。幻数是一个数,其因数(除了它自己)总和等于该数。所以 6 将是一个神奇的数字,因为它本身的因素是 1,2 和 3,总和为 6。我已经盯着这段代码一段时间了,我一生都无法弄清楚为什么它不会打印出来神奇的数字。任何帮助,将不胜感激。
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);
}
}
}
}
}