C语言:3. 从键盘输入一个整数,判断其是否完数,若是输出“Yes”,否则输出“No”。所谓完数,即该数本身等于其所有真因子之和则称之为完数,如28=1+2+4+7+14 输入格式:“%d” 输出格式:“Yes”或者“No”
时间: 2023-06-19 16:07:00 浏览: 77
判断一个是否是完数。
以下是C语言的代码实现:
```c
#include <stdio.h>
int main() {
int num, sum = 0;
scanf("%d", &num);
for (int i = 1; i < num; i++) {
if (num % i == 0) {
sum += i;
}
}
if (num == sum) {
printf("Yes");
} else {
printf("No");
}
return 0;
}
```
首先,我们从键盘输入一个整数 `num`,并初始化一个变量 `sum` 为 0。接着,我们遍历从 1 到 `num` 之间的所有整数,如果某个整数 `i` 能够整除 `num`,那么 `i` 就是 `num` 的一个真因子,将 `i` 的值加到 `sum` 上。最后,如果 `num` 等于 `sum`,就输出 "Yes",否则输出 "No"。
需要注意的是,题目中要求排除本身这个因子,因此在循环中,我们从 1 开始遍历到 `num-1`。
阅读全文