一个数如果恰好等于它的因子之和,这个数就称为"完数"


题目:

一个数如果恰好等于它的因子之和,这个数就称为"完数"

(因子:除去这个数本身正的约数)

例如6=1+2+3.编程 找出1000以内的所有完数

 

问题:

1.一个数他的所有因子如何求?

for(int i = 1;i <=1000;i++)//这1000个数中,每执行一次,得到一个数,要么存在完数,要么为0;
		{
			for(int j=1;j<i;j++) {//这个得到的结果是一个数的所有因子相加
				if(i%j==0)//因子:除去这个数本身正的约数
					factor+=j;//因子相加
			}
			if(factor == i) {//如果这个因子之和等于它本身,则它是完数
				System.out.println("完数为:"+i);
				count++;
			}
			factor=0;
		}

 

完整代码:

package demo;

public class Test15{
    static int count;
    public static void main(String[] args) {
        int factor=0;
        for(int i = 1;i <=1000;i++)//这1000个数中,每执行一次,得到一个因子,要么存在,要么为0;
        {
            for(int j=1;j<i;j++) {//这个得到的结果是一个数的所有因子相加
                if(i%j==0)//因子:除去这个数本身正的约数
                    factor+=j;//因子相加
            }
            if(factor == i) {//如果这个因子之和等于它本身,则它是完数
                System.out.println("完数为"+i);
                count++;
            }
            factor=0;
        }
        System.out.println("0到1000所有完数的为:"+count+"个");
        
    }
}

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM