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 ,每次都要重新求和

相关推荐
dot to one1 分钟前
深入理解C++面向对象特性之一 多态
c语言·开发语言·c++·visual studio
熊熊饲养员5 分钟前
【简单理解什么是简单工厂、工厂方法与抽象工厂模式】
java·开发语言·抽象工厂模式
TDengine (老段)5 分钟前
TDengine JAVA 语言连接器
java·大数据·数据库·物联网·时序数据库·iot·tdengine
马达加斯加D6 分钟前
设计模式 --- 观察者模式
java·观察者模式·设计模式
钢板兽13 分钟前
Java常见的23种设计模式
java·开发语言·设计模式
Pasregret16 分钟前
01-JVM 内存模型与 GC 原理
java·开发语言·jvm·后端
码猿技术专栏19 分钟前
Spring Integration 轻松实现服务间消息传递,真香!
java·spring boot
钢铁男儿21 分钟前
Python 字典和集合(字典推导)
开发语言·python
非ban必选26 分钟前
spring-ai-openai调用Xinference1.4.1报错
java·python·spring
学习2年半36 分钟前
equals() 和 hashCode()
java·开发语言·jvm