首页 > 试题广场 >

编程求1000之内的所有“完数” 。所谓“完数''是指一个数

[问答题]

编程求1000之内的所有“完数” 。所谓“完数''是指一个数恰好等于它的包括1 在内的所有不同因子之和。例如, 6是完数,因为6=1+2+3。

推荐
//===================================
//EX0204.cpp
//1000之内的完数
//===================================
#include<iostream>
using namespace std;
//-----------------------------------
int main() {
    for(int i=2; i<=1000; i++)
    {
      int sum=1;
      for(int j=2; j<=i/2; j++)
        if(i%j==0)
          sum += j;
      if(sum==i)
        cout<<i<<"\n";
    }
}//===================================


发表于 2018-05-07 20:31:46 回复(2)
#include<iostream>
using namespace std;
int main()
{
for(int i=1;i<1000;i++)
{
int sum=0;
for(int j=1;j<i;j++)
{
if(i%j==0)
sum+=j;
}
if(sum==i)
cout<<i<<" ";
}
return 0;
}
1.可以在算因数时只算到i/2,这样能够减少运算量。
编辑于 2019-11-24 19:59:49 回复(0)