java,求1000内的完数,谁能告诉哪里错了(菜鸟求救)

来源:百度知道 编辑:UC知道 时间:2024/06/01 15:03:34
class Lesson
{
public static void main(String[] args)
{
int a,b,sum;
sum=0;
for(a=1;a<=1000;a++){
for(b=1;b<a;b++){
if(a%b==0){
sum=sum+b;
}
}
if(sum==a){
System.out.println(sum);
}
}
}
}
可以编译 可是为什么打印不出结果

sum没清0

class Lesson
{
public static void main(String[] args)
{
int a,b,sum;
sum=0;
for(a=1;a<=1000;a++){
for(b=1;b<a;b++){
if(a%b==0){
sum=sum+b;
}
}
if(sum==a){
System.out.println(sum);
}
sum = 0;
}
}
}

完数是什么概念?建议在if(sum==a){ 前面输出sum和a的值 看看是不是相等 不就知道这个if是不是true了么。。。。