用c++写一个求完美数的代码
时间: 2023-09-04 17:04:15 浏览: 90
### 回答1:
以下是用 C 语言编写的完美数判断程序:
```c
#include <stdio.h>
int is_perfect(int num);
int main() {
int num;
printf("请输入一个正整数:");
scanf("%d", &num);
if (is_perfect(num)) {
printf("%d 是一个完美数。\n", num);
} else {
printf("%d 不是一个完美数。\n", num);
}
return 0;
}
int is_perfect(int num) {
int i, sum = 0;
for (i = 1; i <= num / 2; i++) {
if (num % i == 0) {
sum += i;
}
}
if (sum == num) {
return 1;
} else {
return 0;
}
}
```
运行程序后,输入一个正整数,程序会判断这个数是否是完美数。如果是完美数,程序输出“这是一个完美数”;如果不是完美数,程序输出“这不是一个完美数”。
### 回答2:
完美数是指一个数恰好等于它的因子(不包括它本身)之和的数。例如,6是完美数,因为6的因子有1、2、3,而1+2+3=6。下面是使用C语言编写求完美数的代码:
```c
#include <stdio.h>
// 判断一个数是否为完美数
int isPerfectNumber(int num) {
int sum = 0;
// 遍历num的所有因子
for (int i = 1; i < num; i++) {
if (num % i == 0) {
sum += i;
}
}
// 判断因子之和是否等于num
if (sum == num) {
return 1; // 是完美数
}
return 0; // 不是完美数
}
int main() {
int n;
printf("请输入一个数:");
scanf("%d", &n);
if (isPerfectNumber(n)) {
printf("%d是完美数。\n", n);
} else {
printf("%d不是完美数。\n", n);
}
return 0;
}
```
运行程序时,用户输入一个数n。然后通过调用isPerfectNumber函数判断n是否为完美数,并打印相应的结果。以上就是用C语言编写求完美数的代码。
### 回答3:
完美数,又称完全数,是指一个数恰好等于它的因子(除了它本身)的和。例如,6是一个完美数,因为6的因子是1、2、3,且1+2+3=6。
下面是使用C语言编写的求完美数的程序:
```c
#include <stdio.h>
// 函数声明
int isPerfectNumber(int num);
int main() {
int num;
printf("请输入一个正整数: ");
scanf("%d", &num);
if (isPerfectNumber(num)) {
printf("%d是一个完美数。\n", num);
} else {
printf("%d不是一个完美数。\n", num);
}
return 0;
}
// 函数定义
int isPerfectNumber(int num) {
int sum = 0;
for (int i = 1; i <= num / 2; i++) {
if (num % i == 0) {
sum += i;
}
}
if (sum == num) {
return 1; // 是完美数
} else {
return 0; // 不是完美数
}
}
```
这个程序首先会提示用户输入一个正整数,然后调用`isPerfectNumber`函数来判断这个数字是否是完美数。`isPerfectNumber`函数会遍历从1到num / 2的每一个数,如果它能被num整除,就将它加到sum中。最后,如果sum等于num,就表示num是一个完美数,函数返回1;否则表示num不是完美数,函数返回0。
程序运行结果将会输出该数字是否是完美数。如果是完美数,则输出"数字是一个完美数",否则输出"数字不是一个完美数"。