Skip to content

Commit 9ea144f

Browse files
Utsav1999cclauss
andauthored
Added Python Program to Check Perfect Number (#2244)
* Added Python Program to Check Perfet Number * CodeSpell Error Fix - 1 * Build Error Fix - 1 * Made suggested changes * Use generator expression Co-authored-by: Christian Clauss <[email protected]>
1 parent ee282d3 commit 9ea144f

File tree

1 file changed

+34
-0
lines changed

1 file changed

+34
-0
lines changed

Diff for: maths/perfect_number.py

+34
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
"""
2+
== Perfect Number ==
3+
In number theory, a perfect number is a positive integer that is equal to the sum of
4+
its positive divisors, excluding the number itself.
5+
For example: 6 ==> divisors[1, 2, 3, 6]
6+
Excluding 6, the sum(divisors) is 1 + 2 + 3 = 6
7+
So, 6 is a Perfect Number
8+
9+
Other examples of Perfect Numbers: 28, 486, ...
10+
11+
https://en.wikipedia.org/wiki/Perfect_number
12+
"""
13+
14+
15+
def perfect(number: int) -> bool:
16+
"""
17+
>>> perfect(27)
18+
False
19+
>>> perfect(28)
20+
True
21+
>>> perfect(29)
22+
False
23+
24+
Start from 1 because dividing by 0 will raise ZeroDivisionError.
25+
A number at most can be divisible by the half of the number except the number
26+
itself. For example, 6 is at most can be divisible by 3 except by 6 itself.
27+
"""
28+
return sum(i for i in range(1, ((number // 2) + 1)) if number % i == 0) == number
29+
30+
31+
if __name__ == "__main__":
32+
print("Program to check whether a number is a Perfect number or not.......")
33+
number = int(input("Enter number: ").strip())
34+
print(f"{number} is {'' if perfect(number) else 'not '} a Perfect Number.")

0 commit comments

Comments
 (0)