/*
要求:找出1000以内所有的完数,一个数如果恰好等于它的因子之和,这个数就是完数,例如:6=1+2+3
思路: 1、用for循环找到1000以内的数
2、让这个数对1和它本身以外的数求余,求余等于0,这个数就是它的因数
3、让这些因数相加等于它,这个数就是完数,1000以内的完数是6、28、496
*/
import java.util.Scanner;
public class Study008{
public static void main(String[] args){ //i从2开始到1000(因为1不是完数,1是所有数的因数)
for (int i = 2 ;i <= 1000 ;i++ ){
int s = 0; //s做累加,因子加起来等于这个数,此时这就是完数
for (int j = 1 ;j < i /2 ;j++ ){
if (i % j == 0){
s += j;
}
}
if (s == i){
System.out.println(s + "是完数"); //完数结果出来啦 6、28、496
}
}
}
}