java练习6. 求完数

题目: 请编程求出1000 以内的所有完数。

完数:一个数如果恰好等于它的所有真因子(即除了自身外的所有因数)之和,这个数就称为"完数"。

java 复制代码
public static void main(String[] args) {
        for (int i = 2; i < 1000; i++) {
            int sum=0;
            for (int j = 1; j <=i/2; j++) {
                if(i%j==0){
                    sum+=j;
                }
            }
            if (sum==i){
                System.out.println(i);
            }

        }
    }

利用双层循环,外层循环作为控制1000以内,内层循环用于控制因子,因为一个数不可能被大于自身一半的数整除,所以条件为 j<=i/

注意: 在第一层循环内要加一个 sum=0 ,每次都要重新求和

相关推荐
桦说编程1 小时前
从 ForkJoinPool 的 Compensate 看并发框架的线程补偿思想
java·后端·源码阅读
躺平大鹅3 小时前
Java面向对象入门(类与对象,新手秒懂)
java
初次攀爬者4 小时前
RocketMQ在Spring Boot上的基础使用
java·spring boot·rocketmq
花花无缺4 小时前
搞懂@Autowired 与@Resuorce
java·spring boot·后端
Derek_Smart5 小时前
从一次 OOM 事故说起:打造生产级的 JVM 健康检查组件
java·jvm·spring boot
NE_STOP6 小时前
MyBatis-mybatis入门与增删改查
java
孟陬10 小时前
国外技术周刊 #1:Paul Graham 重新分享最受欢迎的文章《创作者的品味》、本周被划线最多 YouTube《如何在 19 分钟内学会 AI》、为何我不
java·前端·后端
想用offer打牌10 小时前
一站式了解四种限流算法
java·后端·go
华仔啊10 小时前
Java 开发千万别给布尔变量加 is 前缀!很容易背锅
java