/*
* 程序头部注释开始
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称:求1000之内的所有水仙花数
* 作 者:薛广晨
* 完成日期:2011 年 09 月 18 日
* 版 本号:x1.0
* 对任务及求解方法的描述部分
* 输入描述:
* 问题描述: 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程序,输出任意数之间的所有完数。
* 程序输出:
* 程序头部的注释结束
*/
package xgc.com;
public class PerfectNumber {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("完全数为:");
printComNum(1000);
}
static void printComNum(int n) {
// TODO Auto-generated method stub
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.print(i + " ");
}
}
}
}
运行结果: