题目:一个数如果恰好等于它的因子之和,这个数就称为”完数”。例如6=1+2+3.编程找出1000以内的所有完数。
解题思路:
1.先求出1000以内每个数的因数,再计算这些因数之和是否等于该数值,如果是就输出。
2.利用两个for循环,最外层控制1000内数值的变化,内层循环控制获取因数
具体代码:
package package1027;
//一个数如果恰好等于它的因子之和,这个数就称为”完数”。例如6=1+2+3.编程找出1000以内的所有完数。
public class WanShu {
public void exeBallWanShu() {
for (int i = 1; i <= 1000; i++) {
int total = 0;
for (int j = 1; j <= i/2; j++) {
if (i%j == 0) {
total = total + j;
}
}
if (total == i) {
System.out.println(i);
}
}
}
public static void main(String[] args) {
WanShu wanShu = new WanShu();
System.out.println("1000以内的完数:");
wanShu.exeBallWanShu();
}
}