标签:百度百科 code 核心 重置 等于 image images 参考 title
本项目的关键是判断区间内的每一个数是否满足亲密数的定义。亲密数的定义是:如果a的所有正因子和等于b,b的所有正因子和等于a,因子包括1但不包括本身,且a不等于b,则称a,b为亲密数对(参考百度百科对亲密数的解释)
首先定义两个变量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的因子
total1 = total1 + j; //total1是在循环外定义的,初值为0,用于计算真因子和
}
}
if(total1!=i){ //如果真因子和不等于它本身
for(int k=1;k<total1;k++){ //遍历1到total1
if(total1%k==0) { //如果k是total1的因子
total2 = total2 + k; //total2是在循环外定义的,初值为0,用于计算total1的真因子和
}
}
if(total2==i && i<total1){ //如果i的所有正因子和等于total1,total1的所有正因子和等于
System.out.println(i+"和"+total1+"是一对亲密数");
count++;
}
}
total1=0; //重置total1
total2=0; //重置total2
}
这个项目与完全数的求解大致过程较为相似,所以我直接使用了完全数的模板,修改了其中的核心部分代码。此过程我节省了大量时间,这启示我在实现项目的同时要多动脑子,这样可以少走许多弯路。
步骤 | 耗时(min) | 百分比 |
---|---|---|
需求分析 | 15 | 33.3% |
设计 | 5 | 11.1% |
代码实现 | 5 | 11.1% |
测试 | 5 | 11.1% |
分析总结 | 15 | 33.3% |
标签:百度百科 code 核心 重置 等于 image images 参考 title
原文地址:https://www.cnblogs.com/20175317zrw/p/10923544.html