那位大哥帮忙看看,为什么我的求完美数的代码运行不出来啊,(Java代码) 在帮忙把这些完美数存到一个数组

2024-12-19 17:59:11
推荐回答(1个)
回答1:

首先,你的num不应该在循环外赋初值,因为这题的原理是,每个数除自身以外的约数相加和等于自身,所以,对于每个数来说,开始的num都应该是0,还有,你判断这数是完美数,那么num应该是所有除自身外的所有约数之和,所以那个判断if语句也应该在循环外
int num ;
for(int i=1;i<=100;i++){
num=0;
for(int j=1;j<=i/2;j++){
if(i%j==0){
num+=j;
}
}//end for
if(num==i){
System.out.println("完美数:"+num);
}
}