#include<stdio.h>/*****你写的不好看,整理了一下^.^*****/
main()
{ int m,i,sum;
for(m=1;m<=1000;m++)
{
sum=0;
for(i=1;i<m;i++)
if(m%i==0) sum=sum+i;
if(sum==m) printf("%d ",sum);/*****这里错了,该句拿出for循环就可以了*****/
}
}
/********之所以出24是因为:1,2,3,4,6,8,12当循环到8的时候1+2+3+4+6+8=24,满足你的条件就输出24,虽然还没完成!********/
/************再讲讲为什么会循环输出:6有1,2,3三个因子,6%3=2,此时sum=sum+i满足,输出6!!!i=4,5,6时sum=sum+i还是满下次!输3次6;28有1,2,4,7,14,当i=14满足后15,16,17....28都满足sum=sum+i,就输出28-13=15次!!!496同理!***************/
不知明白了没有?
温馨提示:答案为网友推荐,仅供参考