题目:一个数如果恰好等于它的因子之和,这个数就称为"完数"。
分析:例如6=1+2+3.
编程找出1000以内的所有完数。
假如整数n除以m,结果是无余数的整数,那么我们称m就是n的因子。
public class Problem09 {
//题目:一个数如果恰好等于它的因子之和,这个数就称为"完数"。
//例如6=1+2+3.
//编程找出1000以内的所有完数。
//假如整数n除以m,结果是无余数的整数,那么我们称m就是n的因子。
public static void main(String args[]) {
for(int i=1; i<=1000; i++) {
int sum = 0;
for(int j=1; j<i; j++) {
if(i%j==0) {
//如果可以整除,说明j是i的因子
sum += j;
}
}
if(sum == i) {
//若一个数的所有因子相加等于它本身,说明它是完数
System.out.println(sum);
}
}
}
}
输出结果:
6
28
496