/* (程序头部注释开始)
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称: 《求1000以内的完数——JAVA第四周》
* 作 者: 刘江波
* 完成日期: 2012 年 9 月 22 日
* 版 本 号: v1.1
* 对任务及求解方法的描述部分
* 问题描述:
/*1.若一个自然数,它所有的真因子(即除了自身以外的约数)的和恰好等于它本身,这种数叫做完全数。简称“完数”
例如,
6=1+2+3
28=1+2+4+7+14
496=1+2+4+8+16+31+62+124+248
8128=1+2+4+8+16+32+64+127+254+508+1016+2032+4064
编写一个Java程序,输出任意数之间的所有完数。*/
* 程序头部的注释结束
*/
public class TestComNum {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("1000以内的完数有:");
printComNum(1000);
}
static void printComNum(int n){
for(int i = 1; i <= n; i++)
{
int sum = 0;
for(int j = 1; j < i; j++)
{
if(i % j == 0)
{
sum = sum + j;
}
}
if(sum == i)
{
System.out.println(i);
}
}
}
}