From bfc3ab2cc1fd63a0c27bdf76e8314758e3505f5e Mon Sep 17 00:00:00 2001 From: "exercism-solutions-syncer[bot]" <211797793+exercism-solutions-syncer[bot]@users.noreply.github.com> Date: Tue, 31 Mar 2026 13:33:13 +0000 Subject: [PATCH] [Sync Iteration] c/perfect-numbers/1 --- .../c/perfect-numbers/1/perfect_numbers.c | 18 ++++++++++++++++++ .../c/perfect-numbers/1/perfect_numbers.h | 12 ++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 solutions/c/perfect-numbers/1/perfect_numbers.c create mode 100644 solutions/c/perfect-numbers/1/perfect_numbers.h diff --git a/solutions/c/perfect-numbers/1/perfect_numbers.c b/solutions/c/perfect-numbers/1/perfect_numbers.c new file mode 100644 index 0000000..2d656c5 --- /dev/null +++ b/solutions/c/perfect-numbers/1/perfect_numbers.c @@ -0,0 +1,18 @@ +#include "perfect_numbers.h" + +int classify_number(int number) +{ + int sum = 0; + if (number <= 0) + return ERROR; + for (int factor = 1; factor < number; factor++) + { + if (number % factor == 0) + sum += factor; + } + if (sum > number) + return ABUNDANT_NUMBER; + else if (sum < number) + return DEFICIENT_NUMBER; + return PERFECT_NUMBER; +} \ No newline at end of file diff --git a/solutions/c/perfect-numbers/1/perfect_numbers.h b/solutions/c/perfect-numbers/1/perfect_numbers.h new file mode 100644 index 0000000..04d8351 --- /dev/null +++ b/solutions/c/perfect-numbers/1/perfect_numbers.h @@ -0,0 +1,12 @@ +#ifndef PERFECT_NUMBERS_H +#define PERFECT_NUMBERS_H + +typedef enum { + PERFECT_NUMBER = 1, + ABUNDANT_NUMBER = 2, + DEFICIENT_NUMBER = 3, + ERROR = -1 +} kind; + +int classify_number(int number); +#endif