File tree 1 file changed +34
-0
lines changed
1 file changed +34
-0
lines changed Original file line number Diff line number Diff line change
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." )
You can’t perform that action at this time.
0 commit comments