求1000之内的所有完数并输出其因子。请用c语言编程
时间: 2024-05-13 21:17:33 浏览: 123
C语言期末经典程序填空题
完数指一个数恰好等于它的因子之和,比如6就是一个完数,因为6的因子为1、2、3,而1+2+3=6。
以下是用C语言编写的求1000以内所有完数并输出因子的程序:
```c
#include <stdio.h>
int main() {
int i, j, sum;
printf("1000以内的完数有:\n");
for (i = 1; i <= 1000; i++) {
sum = 0;
for (j = 1; j <= i / 2; j++) {
if (i % j == 0) {
sum += j;
}
}
if (sum == i) {
printf("%d:1", i);
for (j = 2; j <= i / 2; j++) {
if (i % j == 0) {
printf("、%d", j);
}
}
printf("\n");
}
}
return 0;
}
```
程序先循环遍历1到1000之间的所有整数,对于每个整数i,内层循环遍历1到i的一半,判断这些数是否是i的因子,并将它们的和累加到sum中。如果sum等于i,说明i是完数,输出i并将i的因子依次输出即可。
阅读全文