完全数
Posted 20175317zrw
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了完全数相关的知识,希望对你有一定的参考价值。
完全数
需求分析
在学习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% |
以上是关于完全数的主要内容,如果未能解决你的问题,请参考以下文章