123456789101112131415161718192021222324252627282930313233343536373839 |
- #include <stdio.h>
- int isPerfectNumber(int num) {
- int sum = 1;
- int i;
- for (i = 2; i * i <= num; i++) {
- if (num % i == 0) {
- if (i * i == num) {
- sum += i;
- } else {
- sum += i + num / i;
- }
- }
- }
- return sum == num;
- }
- int findLargestPerfectNumber(int m) {
- int i;
- for (i = m; i >= 1; i--) {
- if (isPerfectNumber(i)) {
- return i;
- }
- }
- return -1;
- }
- int main() {
- int m;
- scanf("%d", &m);
- int largestPerfectNumber = findLargestPerfectNumber(m);
- if (largestPerfectNumber != -1) {
- printf("%d\n",largestPerfectNumber);
- }
- return 0;
- }
|