c++求1000以内的完数
时间: 2024-01-22 12:04:21 浏览: 88
寻找1000以内完数
5星 · 资源好评率100%
以下是两种C++求1000以内完数的例子:
1.使用两层循环,分别遍历每个数和每个数的因子,判断是否为完数。
```c++
#include <iostream>
using namespace std;
int main() {
int s;
cout << "1000以内完数有" << '\n';
//若一个数等于其因数之和,则为完数
for(int i=1;i<=1000;i++) {
s=0; //s值初始化
for(int j=1;j<i;j++) { //求一个数的因数,若是则累加到s
if(i%j==0) { //判断此时的j是否为i的因子
s+=j;
}
}
if(s==i) {
cout << s << '\t';
}
}
return 0;
}
```
2.定义一个函数判断一个数是否为完数,然后在主函数中遍历1到1000的数,调用函数判断是否为完数。
```c++
#include <iostream>
#include <iomanip>
using namespace std;
bool perfect(int);
int main() {
int i,count=0;
for (i = 1; i <= 1000; i++) {
if (perfect(i)) {
count++;
cout << setw(4) << i << ((count % 5 == 0) ? "\n" : " ");
}
}
}
bool perfect(int x) {
int i, sum=0;
for (i = 1; i < x; i++) {
if (x % i == 0) {
sum += i;
}
}
if (sum == x) {
return true;
}
return false;
}
```
阅读全文