Skip to content

Commit 64adb2a

Browse files
authored
suggested changes done is_K_power_of_n.py
1 parent 1136973 commit 64adb2a

File tree

1 file changed

+18
-18
lines changed

1 file changed

+18
-18
lines changed

bit_manipulation/is_K_power_of_n.py

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,20 @@
1-
def is_power(n: int, k: int) -> bool:
1+
def is_power(base: int, number: int) -> bool:
22
"""
3-
Checks if a given integer k is a power of another integer n.
3+
Checks if a given integer `number` is a power of another integer `base`.
44
5-
This function determines if there exists an integer x such that n^x = k.
5+
This function determines if there exists an integer x such that base^x = number.
66
It handles positive integers only and raises an error for non-positive inputs.
77
For more information, see: https://en.wikipedia.org/wiki/Power_of_two
88
99
Args:
10-
n: The base integer (must be a positive integer).
11-
k: The number to check if it's a power of n (must be a positive integer).
10+
base: The base integer (must be a positive integer).
11+
number: The number to check if it's a power of base (must be a positive integer).
1212
1313
Returns:
14-
True if k is a power of n, False otherwise.
14+
True if number is a power of base, False otherwise.
1515
1616
Raises:
17-
ValueError: If n or k are not positive integers.
17+
ValueError: If base or number are not positive integers.
1818
1919
Examples:
2020
>>> is_power(2, 8)
@@ -32,24 +32,24 @@ def is_power(n: int, k: int) -> bool:
3232
>>> is_power(0, 5)
3333
Traceback (most recent call last):
3434
...
35-
ValueError: Both n and k must be positive integers
35+
ValueError: Both base and number must be positive integers
3636
>>> is_power(4, -16)
3737
Traceback (most recent call last):
3838
...
39-
ValueError: Both n and k must be positive integers
39+
ValueError: Both base and number must be positive integers
4040
"""
41-
if n <= 0 or k <= 0:
42-
raise ValueError("Both n and k must be positive integers")
41+
if base <= 0 or number <= 0:
42+
raise ValueError("Both base and number must be positive integers")
4343

44-
if n == 1:
45-
return k == 1
44+
if base == 1:
45+
return number == 1
4646

47-
# Repeatedly divide k by n until it's no longer divisible.
48-
while k % n == 0:
49-
k //= n
47+
# Repeatedly divide number by base until it's no longer divisible.
48+
while number % base == 0:
49+
number //= base
5050

51-
# If k has been reduced to 1, it was a power of n.
52-
return k == 1
51+
# If number has been reduced to 1, it was a power of base.
52+
return number == 1
5353

5454

5555
if __name__ == "__main__":

0 commit comments

Comments
 (0)