A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

//题目:一个数如果恰好等于它的因子(包括1,不包括本身)之和,这个数就称为"完数"。
//例如6是一个完数,因为6=1+2+3.编程找出10000以内的所有完数。
public class Demo3 {
        public static void main(String[] args) {
                for (int i = 1; i <= 10000; i++) {
                        if (isWanShu(i)) {                //如果是完数,就打印
                                System.out.println(i);
                        }
                }
        }
        // 以下是判断给定整数是否是完数的方法,如果是,返回true,不是则返回false。       
        private static boolean isWanShu(int n) {
                boolean flag = false;
                int sum = 0;
                for (int i = 1; i <= n / 2; i++) {
                        if (n % i == 0) {
                                sum += i;        // 各因子累加
                        }
                }
                if (sum == n) {                // 判断累加结果是否等于该数本身
                        flag = true;
                }
                return flag;
        }
}

3 个回复

倒序浏览
你确定对吗?
回复 使用道具 举报

应该是对的啊,总共是四个。 你发现哪里逻辑有问题吗?
回复 使用道具 举报
小伙子你是0908的吧
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马