File tree Expand file tree Collapse file tree 1 file changed +26
-0
lines changed
solutions/python/perfect-numbers/1 Expand file tree Collapse file tree 1 file changed +26
-0
lines changed Original file line number Diff line number Diff line change 1+ """
2+ Determine if a number is perfect, abundant, or deficient based on
3+ Nicomachus' (60 - 120 CE) classification scheme for positive integers.
4+ """
5+
6+
7+ def classify (number : int ) -> str :
8+ """
9+ A perfect number equals the sum of its positive divisors.
10+
11+ :param number: int a positive integer
12+ :return: str the classification of the input integer
13+ """
14+ if number < 1 :
15+ raise ValueError (
16+ "Classification is only possible for positive integers."
17+ )
18+
19+ total_divisors : int = sum (i for i in range (1 , number ) if number % i == 0 )
20+
21+ if total_divisors == number :
22+ return "perfect"
23+ if number < total_divisors :
24+ return "abundant"
25+
26+ return "deficient"
You can’t perform that action at this time.
0 commit comments