用c语言写一个:求正整数n之内的所有完数及其因子
时间: 2023-06-02 16:05:55 浏览: 196
我可以为您提供这个问题的解答。以下是用 C 语言编写的求正整数 n 之内的所有完数及其因子的代码:
```
#include <stdio.h>
int main()
{
int n, i, j, sum;
printf("请输入 n 的值:");
scanf("%d", &n);
// 求解完数
for (i = 1; i <= n; i++) {
sum = 0;
for (j = 1; j < i; j++) {
if (i % j == 0) {
sum += j;
}
}
if (sum == i) {
// 输出完数及其因子
printf("%d 的因子有:", i);
for (j = 1; j < i; j++) {
if (i % j == 0) {
printf("%d ", j);
}
}
printf("\n");
}
}
return 0;
}
```
在该代码中,我们首先通过 `scanf` 函数接收用户输入的 n 值。然后,我们使用两层循环分别对每个数字 i 进行因子求和,并判断该数字是否为完数。如果是完数,我们就输出该数字及其因子。
需要注意的是,该程序没有对用户输入的数据进行验证,因此如果用户输入的不是正整数,程序可能会出错。
阅读全文