/**
* 完数是指一个数除本身以外全部因子之和等于其本身的一类函数
* @author 11440
*
*/
public class Demo14 {
public static void main(String[] args) {
//从第一个完数6开始计算
for(int perfectNumber=6;perfectNumber<1000;perfectNumber++) {
//预先设置第二重循环上限值,以便在后面代码中进行变更
int factor=perfectNumber;
//为简便运算,分解因数从2开始,预先将1放入因数和sum中,然后每次运算得出一对因数同时放入sum
int sum=1;
//若找到其中一个因数number,则定有另一个因数perfectNumber/number
int number;
for(number=2;number<factor;number++) {
if(perfectNumber%number==0) {
if(perfectNumber/number!=number) {
sum+=(perfectNumber/number+number);
}else {
//防止重复计算,若perfectNumber/number和number值相等,则为同一个因数
sum+=perfectNumber/number;
}
//降低循环次数,同时可防止重复计算因数。
factor=perfectNumber/number;
}
}
if(sum==perfectNumber)
System.out.println(perfectNumber+"是完全数");
else
continue;
}
}
}
【求1000以内的完数】Java实现计算1000以内的
最新推荐文章于 2023-11-09 15:32:17 发布