c语言编程问题,求5000以内的所有完数,小白自己的程序,运行不正确,求教~~

#include<stdio.h>

main()
{
int x,y,t,s=0;
for(t=2;t<5001;t++)
{
for(x=2;x<5001;x++)
for(y=2;y<5001;y++)
if(t=x*y)s=s+(x+y)/2;
if(s+1==t)printf("%d",t);

}
}

第1个回答  2011-11-06
C代码
  求1000以内的完数的C语言代码如下:   
#include <stdio.h>   
int main()   
{   int n=1000;  
 int r,j,i;   
for(i=1;i<n; i++){  
 r = 0;   
for(j=1;j<i;j++){  
 if(i%j == 0){  r = r + j;  }  
 }   
if(r == i){   printf("the result is:%d\n",r);   
}   
}   return 0;   
}   
输出结果为:   6,28,496,   即1000以内的完数只有6、28、496三个数字。
第2个回答  2011-11-06
没细看程序,但是这一句: if(t=x*y) 这里面是一个等号???追问

这倒是个错误~~但是改了运行还是不正确~~

追答

哎 没看懂你的编程思想,楼上哥们的编程思想就是很容易懂的一种,很清晰。。

追问

~~~好吧,我再去看下~~

本回答被提问者采纳
相似回答