C语言编写完数是指一个整数恰好等于它的因子之和(除自身外),则称这个数为完数。从键盘先后输入两个不大于9999的正整数m和n,若m>n,则交换两数。然后求m~n(m和n均为正整数且m≤n)之间的所有完数。
时间: 2024-05-14 14:18:55 浏览: 149
C语言程序设计-计算并输出给定整数n的所有因子之和(不包括1与自身);注意:n的值不大于1000.c
5星 · 资源好评率100%
以下是 C 语言代码实现:
```c
#include <stdio.h>
int main() {
int m, n, sum;
// 从键盘输入 m 和 n
printf("请输入两个不大于9999的正整数m和n,用空格隔开:");
scanf("%d %d", &m, &n);
// 如果 m 大于 n,则交换两个数
if (m > n) {
int temp = m;
m = n;
n = temp;
}
// 遍历 m 到 n 之间的所有数
for (int i = m; i <= n; i++) {
sum = 0;
// 找到 i 的所有因子并求和
for (int j = 1; j < i; j++) {
if (i % j == 0) {
sum += j;
}
}
// 如果和等于 i,则说明 i 是一个完数
if (sum == i) {
printf("%d ", i);
}
}
return 0;
}
```
代码的实现思路很简单,就是先输入 m 和 n,然后判断 m 和 n 的大小关系,如果 m 大于 n,就交换两个数。接着,遍历 m 到 n 之间的所有数,找到每个数的所有因子并求和,如果和等于这个数,则说明这个数是一个完数。最后,将所有完数输出即可。
阅读全文