判断n m之间完数的个数c语言
时间: 2024-01-29 18:04:19 浏览: 103
完数是指一个数的所有因子(不包括它本身)之和等于这个数本身的数。以下是判断 n 和 m 之间完数的个数的 C 语言代码:
```c
#include <stdio.h>
int main() {
int n, m;
printf("请输入 n 和 m:");
scanf("%d %d", &n, &m);
int count = 0;
for (int i = n; i <= m; i++) {
int sum = 0;
for (int j = 1; j < i; j++) {
if (i % j == 0) {
sum += j;
}
}
if (sum == i) {
count++;
printf("%d ", i);
}
}
printf("\n%d 到 %d 之间共有 %d 个完数。", n, m, count);
return 0;
}
```
首先,从输入中获取 n 和 m 的值。然后,使用 for 循环遍历从 n 到 m 范围内的每个数。对于每个数 i,我们需要计算它的所有因子之和。我们使用第二个 for 循环遍历从 1 到 i-1 范围内的每个数 j,如果 j 是 i 的因子,则将其添加到总和中。最后,如果总和等于 i,则将计数器 count 加 1,并将该数输出。最后输出完数的总个数。
阅读全文