完全数

完全数

需求分析

在学习C语言时我们也曾经接触过完全数,完全数所有的真因子的和,恰好等于它本身,所以要查找完全数只需比对该数是否满足该约束条件。

功能设计

  • 基本功能:查找、判断并输出完全数
  • 扩展功能:输入一个区间的两个端点,判断该区间内是否存在完全数,根据判断输出相应的结果

设计实现

首先定义两个变量a,b,存储用户输入的区间头和尾,之后使用for循环遍历区间,逐个判断其真因子和是否等于它本身,如果有的话输出,同时计数变量count的值加一,最后判断计数变量count的值是否等于初值,如果相等说明区间内未找到完全数,输出提示“该区间内没有完全数”。

测试运行

正常情况

输入图片说明

异常情况

输入图片说明

核心代码


        for (int i=a;i<=b ;i++) {   //遍历a到b
            for(int j=1;j<i;j++){   //遍历比该数小的正整数
                if(i%j==0) {        //如果j是i的因子
                    total = total + j;  //total是在循环外定义的,初值为0,用于计算真因子和
                }
            }
            if(total==i){           //如果真因子和等于它本身
                System.out.println(i);   //输出该数
                count++;     //count初值为0,若找到则其不再为0,可用于判断该区间内是否有完全数
            }
            total=0;
        }

总结

在写第二个个人项目时,我先抓住问题的关键,即判断一个数的因子和是否与其本身相等,再围绕问题关键解决问题。我发现这样解决问题又快思路又清晰,虽然这是一个特别小的项目,代码只有几十行,但是在完成大的项目时这种方法依然适用且高效。

PSP

步骤 耗时(min) 百分比
需求分析 5 8.3%
设计 15 25%
代码实现 15 25%
测试 10 16.7%
分析总结 15 25%
posted @ 2019-05-26 22:19  20175317zrw  阅读(658)  评论(0编辑  收藏  举报
//点赞