是给出一个(1,10000]之间的数字n,让你输出里面所有的完数。

#include <iostream>
#include <string>
#include <cstring>
#include <math.h>
#include <vector>
using namespace std;
int main()
{
unsigned int x= 0;
int sum = 0;
vector<int>ivec;
while (cin >>x)

{

if(x>10000)

break;

ivec.clear();
sum = 0;
for (int i = 1; i < x; ++i)
{
if (x % i==0)
{
ivec.push_back(i);
}
}
for (vector<int>::iterator i = ivec.begin(); i != ivec.end(); i++)
{
sum += *i;
}
if (sum==x)
{
printf("x = %d是完数.\n",x);

}
else
{
printf("x = %d不是完数.\n", x);

}


// cout << endl;
}


}
展开阅读全文

没有更多推荐了,返回首页