完数是指一个整数恰好等于它的因子之和(除自身外),则称这个数为完数。从键盘先后输入两个不大于9999的正整数m和n,若m>n,则交换两数。然后求m~n(m和n均为正整数且m≤n)之间的所有完数。 c语言大学内容
时间: 2023-07-15 08:12:44 浏览: 153
将一个整数S随机拆分为N个在min~max之间的整数.txt
以下是求解m~n之间所有完数的C语言代码:
```
#include <stdio.h>
int main() {
int m, n, i, j, sum;
printf("请输入两个正整数m和n(m和n均不大于9999):");
scanf("%d%d", &m, &n);
if (m > n) {
int temp = m;
m = n;
n = temp;
}
printf("%d~%d之间的完数有:", m, n);
for (i = m; i <= n; 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;
}
```
代码中,我们首先输入m和n,如果m大于n,则交换两数。然后使用两层循环分别遍历m~n之间的每一个数和每一个数的所有因子,并将因子之和累加到sum中。如果sum等于当前数i,则说明i为完数,将其输出即可。
阅读全文