求完数
1 include<stdio.h> 2 int main() 3 { 4 int a, b, d; 5 for (d = 1; d <= 1000; d++) 6 { 7 a = 0; 8 for (b = 1; b <= d / 2; b++) //对于某一整数来说,其最大因子为n/2 (若n为偶数时,若为奇数最大因子小于n/2) 9 if (d%b == 0) //遍历1-这个整数如果能除尽则这个数为因子 10 a += b; 11 if (a == d) //把这个因子累加等于那一整数就为完数 12 { 13 for (b = 1; b <= d / 2; b++) //重新遍历输出因子 14 if (d%b == 0) 15 printf("%d\t", b); 16 printf("It's a perfect number:%d\n", d); //输出完数 17 } 18 } 19 20 return 0; 21 }