求助,如何解决这个死循环
题目:一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程 找出1000以内的所有完数。
我这程序运行时不成功。请各位高手指点,谢谢!
main() { int num=0,i,n,k; for(n=2;n<=1000;n++) {k=n; for(i=1;i<=n;i++) while(n!=i) {if (n%i==0) {num=num+i;n=n/i;} else break;} num=num+n; if (num==k) printf("the number is correct%d",k);
}