@@ -46,17 +46,27 @@ def perfect(number: int) -> bool:
46
46
False
47
47
>>> perfect(-1)
48
48
False
49
+ >>> perfect(33550336) # Large perfect number
50
+ True
51
+ >>> perfect(33550337) # Just above a large perfect number
52
+ False
53
+ >>> perfect(1) # Edge case: 1 is not a perfect number
54
+ False
55
+ >>> perfect("123") # String representation of a number
56
+ Traceback (most recent call last):
57
+ ...
58
+ ValueError: number must be an integer
49
59
>>> perfect(12.34)
50
60
Traceback (most recent call last):
51
61
...
52
- ValueError: number must an integer
62
+ ValueError: number must be an integer
53
63
>>> perfect("Hello")
54
64
Traceback (most recent call last):
55
65
...
56
- ValueError: number must an integer
66
+ ValueError: number must be an integer
57
67
"""
58
68
if not isinstance (number , int ):
59
- raise ValueError ("number must an integer" )
69
+ raise ValueError ("number must be an integer" )
60
70
if number <= 0 :
61
71
return False
62
72
return sum (i for i in range (1 , number // 2 + 1 ) if number % i == 0 ) == number
@@ -70,8 +80,8 @@ def perfect(number: int) -> bool:
70
80
try :
71
81
number = int (input ("Enter a positive integer: " ).strip ())
72
82
except ValueError :
73
- msg = "number must an integer"
83
+ msg = "number must be an integer"
74
84
print (msg )
75
85
raise ValueError (msg )
76
86
77
- print (f"{ number } is { '' if perfect (number ) else 'not ' } a Perfect Number." )
87
+ print (f"{ number } is { '' if perfect (number ) else 'not ' } a Perfect Number." )
0 commit comments