2018-2019-2 20175310 个人项目报告3--亲密数
定义:
如果a
的所有正因子和等于b
,b
的所有正因子和等于a
,因子包括1但不包括本身,且a
不等于b
,则称a,b
为亲密数对。
需求分析:
根据亲密数的定义,用Java语言进行设计实现。
设计实现:
本代码实现的是输出10000以内的亲密数对
伪代码如下:
1、计算数a的各因子,各因子之和存放于b
2、计算数b的各因子,各因子之和存放于n
3、若n=a,则a和b是一对亲密数
难点总结:
最初写出的代码漏洞百出,首先是没有排除a和a
这种相等的情况,其次是没有将a和b
还有b和a
这种重复情况删除
这两个问题都是在同一个语句中解决的:
//若n=a,则a和b是一对亲密数
if(n==a&&b!=n&&a<b) {
System.out.println(a+"和"+b);
}
我一开始写的代码中if语句中的条件只有判断n==a
,新加的b!=n
是去掉a和a
这种情况,a<b
是去掉a和b
还有b和a
这种重复情况
运行结果截图:
码云链接
PSP时间
步骤 | 耗时(min) | 百分比 |
---|---|---|
需求分析 | 10 | 11% |
设计 | 20 | 22% |
代码实现 | 30 | 33% |
测试 | 10 | 11% |
分析总结 | 20 | 22% |