回 帖 发 新 帖 刷新版面

主题:完数怎么求

// 求1000内的所有完数
// 06-4-26

#include <iostream>
using namespace std;

int main()
{
    int num, n, m, yinzi, sum = 1, j, x, i = 0, a[1000];
    for(num = 1;num <= 1000;num++)
    {
        n = m = num;
        for(yinzi = 1;;yinzi++)
        {
            if(sum == n)
            {
                cout << "its factors are ";
                for(x = 0;x <= i;x++)
                    cout << a[x] << " ";
                cout <<endl;
                i = 0;
                break;
            }
        }
    }

    return 0;

}

这是我做的,但是不对,请大虾指教!

回复列表 (共1个回复)

沙发

main()
{int i,j,n;
 for(i=1;i<=500;i++)/*很多人这写的1000,我个人认为(1000/2)更好*/
   {n=0;
   for(j=1;j<i;j++)
     if(i%j==0)
     n+=j;
     if(n==i)
       {for(j=1;j<i;j++)
          {if(i%j==0)
           printf("%d+",j);
           }
        printf("\b=%d\n",i);
        }
  }
}

我来回复

您尚未登录,请登录后再回复。点此登录或注册