一个完数是指一个数恰好等于它的因子(除了它本身)之和。以下是一个C语言程序,用于输出小于给定数的所有完数及其因子:
#include <stdio.h>
void printFactors(int num) {
int sum = 0;
printf("%d的因子有:", num);
for (int i=1; i<num; i++) {
if (num % i == 0) {
printf("%d ", i);
sum += i;
}
}
printf("\n");
if (sum == num) {
printf("%d是一个完数\n", num);
}
}
int main() {
int limit;
printf("请输入一个正整数:");
scanf("%d", &limit);
printf("小于%d的完数有:\n", limit);
for (int i=1; i<limit; i++) {
printFactors(i);
}
return 0;
}
使用上述程序,用户可以输入一个正整数,程序将打印出小于该数的所有完数以及它们的因子。您可以根据需要修改程序,使其输出大于给定数的完数。