题目:如果一个数恰好等于它的所有因子(包括1但不包括自身)之和,则称之为“完数"。例如6的因子是1, 2, 3,且6=1+2+3,因此6是完数。编写程序找出1000之内的所有完数及这些完数的和。
#include <stdio.h>
int main()
{
int n;
for(n=1;n<=1000;n++)
{ int i=1;
int rest=0;
while(i<=n)
{ rest=i+rest;
if(n==rest)
printf("%d",n);
else if(n<rest)
i++;
else
break;}
}
return 0;
}
结果:1
你不是都写了break了吗,怎么跳不出去吗
break就是跳出while啊,没毛病。你除了n=1的时候会打印,其余都进了else的break了呀