Skip to content

Commit 44b36da

Browse files
Update proth_number.py
1 parent e965f29 commit 44b36da

File tree

1 file changed

+16
-21
lines changed

1 file changed

+16
-21
lines changed

maths/special_numbers/proth_number.py

Lines changed: 16 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -59,38 +59,35 @@ def proth(number: int) -> int:
5959
return proth_list[number - 1]
6060

6161

62-
def isprothnumber(number: int) -> bool:
62+
def is_proth_number(number: int) -> bool:
6363
"""
64-
:param number: nth number to calculate in the sequence
65-
:return: true if number is a Proth number, false etherwise
66-
>>> isprothnumber(5)
64+
:param number: positive integer number
65+
:return: true if number is a Proth number, false otherwise
66+
>>> is_proth_number(5)
6767
True
68-
>>> isprothnumber(34)
68+
>>> is_proth_number(34)
6969
False
70-
>>> isprothnumber(-1)
70+
>>> is_proth_number(-1)
7171
Traceback (most recent call last):
7272
...
7373
ValueError: Input value of [number=-1] must be > 0
74-
>>> isprothnumber(6.0)
74+
>>> is_proth_number(6.0)
7575
Traceback (most recent call last):
7676
...
7777
TypeError: Input value of [number=6.0] must be an integer
7878
"""
7979
if not isinstance(number, int):
80-
msg = f"Input value of [number={number}] must be an integer"
81-
raise TypeError(msg)
80+
raise TypeError(f"Input value of [number={number}] must be an integer")
8281

83-
if number < 1:
84-
msg = f"Input value of [number={number}] must be > 0"
85-
raise ValueError(msg)
82+
if number <= 0:
83+
raise ValueError(f"Input value of [number={number}] must be > 0")
8684

87-
num = number
88-
num -= 1
85+
number -= 1
8986
n = 0
90-
while num % 2 == 0:
91-
num = num // 2
87+
while number % 2 == 0:
88+
number //= 2
9289
n += 1
93-
return num < (2**n)
90+
return number < 2**n
9491

9592

9693
if __name__ == "__main__":
@@ -108,10 +105,8 @@ def isprothnumber(number: int) -> bool:
108105

109106
print(f"The {number}th Proth number: {value}")
110107

111-
listexe = [3, 5, 9, 13, 49, 57, 193, 241, 163, 201]
112-
113-
for number in listexe:
114-
if isprothnumber(number):
108+
for number in [3, 5, 9, 13, 49, 57, 193, 241, 163, 201]:
109+
if is_proth_number(number):
115110
print(f"{number} is a Proth number")
116111
else:
117112
print(f"{number} is not a Proth number")

0 commit comments

Comments
 (0)