问题一: for(n=1;n<=i;n++)中n<=i不能取等号。举例,6%6==0,1+2+3+6>6。
问题二:for(n=1;n<=i;n++);后面的冒号需要取消,否则就没有循环体了。
问题三:for循环的循环体有多行时,请使用花括号。
修改了你的第二个代码
#include
#include
int main(){
int i,n,s;
for(i=2;i<=5000;i++){
s=0;
for(n=1;n if(i%n==0)
s=s+n;
}
if(s==i)
printf("%d ",i);
}
return 0;
}