如果一个数等于它的因子之和,就为完全数。求出1000以内的完全数
穷举法:(1)求出a的所有因子(2)检测所有因子和是不是等于a
1: #include <stdio.h>
2: 3: int factorSum(int a) /*求a的因子和*/
4: {5: int i, sum = 0;
6: for(i=1;i<a;i++)
7: if(a%i == 0) /*i是a的一个因子*/
8: sum = sum + i; /*累加求和*/
9: return sum; /*返回a的因子的和*/
10: } 11: 12: int perfextnumber(int a) /*判断a是否是完全数*/
13: {14: if(a == factorSum(a)) return 1;
15: else return 0;
16: } 17: 18: int main()
19: {20: int a;
21: printf("There are following perfect numbers 1~1000 are:\n");
22: for(a=1;a<=1000;a++)
23: { /*寻找1-1000以内的完全数*/
24: if(perfextnumber(a))
25: printf("%d ",a);
26: } 27: } 28: