完数的判断

173 阅读1分钟
package program;
/**
 * 输出1000之内的所有完数。
 * 所谓完数指的是:如果一个数恰好等于它的所有因子之和,这个数就称为完数。
 * @author Administrator
 *
 */
public class T3_11 {

    public static void main(String[] args) {
        for (int i = 1; i <=1000; i++) {//遍历1000以内的所有数字
            //遍历每一个数字的所有因子(不包括自身,因数包括自身),因子的取值范围是1~i/2(提高效率)
            int s=0;
            for (int j = 1; j <=i/2; j++) {
                if(i%j==0){//该数字是i的因子
                    s+=j;
                }
            }
            if(s==i){
                System.out.println(i+"是完数");
            }
        }
    }

}