寻找完全数.c 470 B

1234567891011121314151617181920212223242526272829
  1. #include <stdio.h>
  2. int isPerfect(int num) {
  3. int sum = 1;
  4. int i;
  5. for (i = 2; i * i <= num; i++) {
  6. if (num % i == 0) {
  7. sum += i;
  8. if (i * i != num) {
  9. sum += num / i;
  10. }
  11. }
  12. }
  13. return sum == num;
  14. }
  15. int main() {
  16. int m,i;
  17. scanf("%d", &m);
  18. for (i = m; i >= 1; i--) {
  19. if (isPerfect(i)) {
  20. printf("%d\n", i);
  21. break;
  22. }
  23. }
  24. return 0;
  25. }