如何编程求1000之内的所有”完数”?

[复制链接]
查看11 | 回复0 | 2015-6-21 13:05:37 | 显示全部楼层 |阅读模式
用C++写了一个#includeusing namespace std;int main(){ int m,s,i; for(m=2;m<1000;m++) //定义了查找的范围,明显的1和0不是 {s=0;
//先赋值因子的和为0for(i=1;i<m;i++){ if((m%i)==0)//求出m所有因子
s=s+i;//把所有m的因子相加}if(m==s)
//如果m=他所有因子的和{ cout<<m<<"是完数"<<endl; //就是完数 cout<<"its factors are:"; for(i=1;i<m;i++)//这里求完数的因子
if(m%i==0)
cout<void main()
{
int i,j,m,s,k,a[100];
for(i=1;i<=1000;i++)
{
m=i;
s=0;
k=0;
for(j=1;j<m;j++)
if(m%j==0)
{
s=s+j;
a[k++]=j;
}
if(i==s)
{
printf("%d",a[0]);
for(j=1;j<k;j++)
{
printf("+%d",a[j]);
}
printf("=%d\n",i);
printf("\n");
}
} }
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行