梦见自己抱着婴儿撒尿:关于c++的问题

来源:百度文库 编辑:中科新闻网 时间:2024/05/04 19:05:19
求1000内的完数(除了它本身的所有因数和等于它自己),怎么编。
#include<iostream.h>
#include<math.h>
void main(){
int i,n,x=0;
for(n=2;n<=1000;n++)
{for(i=2;i<=n;i++)
{if(n%i==0)
x=x+n/i;
}
if(x==n)
cout<<n;
}
}请指出其中的错误!!!谢谢

//例如: 6=1+2+3; 28=1+2+4+7+14;我小改了一下,可以运行

#include<iostream.h>

void main(){
int i,n,x=1;
for(n=2;n<=1000;n++)
{
for(i=2;i<n;i++)
if(n%i==0)x+=i;
if(x==n)
cout<<n<<endl;
x=1;//问题出在这里
}
}

#include<iostream.h>
main()
{int m,i,n;
for(m=2;m<=1000;m++)
{for(i=2,n=1;i<=m/2;i++)
if(m%i==0) n+=i;
if(n==m) cout<<n<<" ";
}
}
你的程序x在每个循环后没有清零