请神看一下“java的求1000以内的完数”这个程序的问题,怎么修改?

来源:百度知道 编辑:UC知道 时间:2024/05/22 10:40:45
class Example6
{public static void main(String args[])
{int count,i,j;
for(i=1;i<=1000;i++)
{count=1;
for(j=2;j<=i/2;j++)
}
{if(i%j==0)
count=count+j;
}
if(i==count)
System.out.println("i="+i);
}
}
第7行说是非法的表达式开始,这是什么错误呢?
完数6=1+2+3,28=1+2+4+7+14....

花括号不对,第一个FOR循环在第七行就结束了,没有实际意义。第二个FOR循环中没有花括号,所以会在第七行报错。由于2个FOR循环都没有作用,所以后面的IF也没意义。还有就是I值应该从2开始取,为1时由于J为空,I==COUNT,会把I算上的。修改后应该是这样:

public class Example6 {
public static void main(String args[]) {
int i,j,count;
for(i=2;i<=1000;i++){
count=1;
for(j=2;j<=i/2;j++){
if(i%j==0){
count=count+j;
}
}
if(i==count){
System.out.println("i="+i);
}
}
}
}