1000以内的完数,用c++写出来
时间: 2023-05-23 16:03:25 浏览: 119
以下是使用 C 语言编写的查找并打印1000以内完数的程序:
#include <stdio.h>
int main()
{
int i, j, sum;
printf("1000以内的完数:\n");
for(i = 1; i <= 1000; i++) {
sum = 0;
for(j = 1; j < i; j++) {
if(i % j == 0) {
sum += j;
}
}
if(sum == i) {
printf("%d ", i);
}
}
printf("\n");
return 0;
}
输出:
1000以内的完数:
6 28 496
相关问题
找出1000以内所有完数c++,并使所有因子相加
以下是C++代码实现:
```c++
#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 << "的因子有:";
for (int j = 1; j < i; ++j) {
if (i % j == 0) {
cout << j << " ";
}
}
cout << endl;
}
}
return 0;
}
```
输出结果如下:
```
6的因子有:1 2 3
28的因子有:1 2 4 7 14
496的因子有:1 2 4 8 16 31 62 124 248
```
代码中,我们首先遍历1到1000之间的所有整数i,然后对于每个i,我们遍历1到i-1之间的所有整数j,找出i的所有因子并累加它们的和。如果这个和等于i,那么i就是完数,输出它的因子即可。
c++求1000以内的完数
以下是两种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;
}
```
阅读全文