写在前面: 我是「扬帆向海」,这个昵称来源于我的名字以及女朋友的名字。我热爱技术、热爱开源、热爱编程。
技术是开源的、知识是共享的。
这博客是对自己学习的一点点总结及记录,如果您对 Java、算法 感兴趣,可以关注我的动态,我们一起学习。
用知识改变命运,让我们的家人过上更好的生活
。
相关文章
一、什么是完数
百度百科这样介绍完数的:
第一个完全数是6,它有约数1、2、3、6,除去它本身6外,其余3个数相加,1+2+3=6。
第二个完全数是28,它有约数1、2、4、7、14、28,除去它本身28外,其余5个数相加,1+2+4+7+14=28。
第三个完全数是496,有约数1、2、4、8、16、31、62、124、248、496,除去其本身496外,其余9个数相加,1+2+4+8+16+31+62+124+248=496。
后面的完全数还有8128、33550336等等。
三、代码实现
public class PerfectNumber {
public static void main(String[] args) {
System.out.println("打印1-1000之间的完数:");
for (int i = 1; i < 1000; i++) {
int sum = 0;
// 求因子
for (int j = 1; j < i; j++) {
if (i % j == 0) {
sum += j;
}
}
// 如果各个因子的和等于这个数,这个数就是完数
if (sum == i) {
System.out.println(i);
}
}
}
}
代码执行结果:
打印1-1000之间的完数:
6
28
496