编写一个函数,判断一个整数是否为完全数,如果是,返回1,否则返回0。并编写主函数调用此函数输出100以内的所有完全数。
这是问作业吧,,
完全数是指一个正整数等于除它本身外的所有因子之和。如6的因子有1、2、3,而6=1+2+3,所以6是完全数。
C语言的实现:
#include <stdio.h>
int is_perfect_number(int num) {
int sum = 0;
for (int i = 1; i <= num / 2; i++) {
if (num % i == 0) {
sum += i;
}
}
if (sum == num) {
return 1;
} else {
return 0;
}
}
int main() {
printf("100以内的完全数有:\n");
for (int i = 1; i <= 100; i++) {
if (is_perfect_number(i)) {
printf("%d ", i);
}
}
printf("\n");
return 0;
}
运行结果:
100以内的完全数有:
6 28