灯火互联
管理员
管理员
  • 注册日期2011-07-27
  • 发帖数41778
  • QQ
  • 火币41290枚
  • 粉丝1086
  • 关注100
  • 终身成就奖
  • 最爱沙发
  • 忠实会员
  • 灌水天才奖
  • 贴图大师奖
  • 原创先锋奖
  • 特殊贡献奖
  • 宣传大使奖
  • 优秀斑竹奖
  • 社区明星
阅读:3550回复:0

java起步——求完全数

楼主#
更多 发布于:2012-09-24 14:56

/*

* 程序的版权和版本声明部分

* Copyright (c) 2011, 烟台大学计算机学院学生

* All rights reserved.

* 文件名称:                            

* 作    者:        张传新                    

* 完成日期:2012 年09 月22日

* 版 本 号:  J.1.04    

* 对任务及求解方法的描述部分

* 输入描述:

* 问题描述:若一个自然数,它所有的真因子(即除了自身以外的约数)的和恰好等于它本身,这种数叫做完全数。简称“完数”

  例如,

  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程序,输出任意数之间的所有完数。

* 问题分析:求一个数的回文数,要求这个数的约数相加之和等于本身。

* 算法设计:首先要定义求所求数的约数的函数,然后将约数相加,再与其本身比较,判断结果。。。

*/

[java]

<span style="font-size:14px;">

public class TestComNum {

 

    /**

     * @param args

     */

    public static void main(String[] args) {

        // TODO Auto-generated method stub

        printComNum(1000);

    }

    static void printComNum(int n){

        for(int i = 1; i <= n;i++){

            int s = 0;

            for(int j = 1;j < i;j++){

                if(i % j == 0){

                    s = s + j;

                }

            }

            if(s == i){

                System.out.println(i+"是完全数...");

            }

        }

    }

}</span>

运行结果:

6是完全数...

28是完全数...

496是完全数...

经验积累:从现在起养成良好的变成习惯,不要忙着敲代码,分析问题和构建框架更重要!!!


喜欢0 评分0
游客

返回顶部