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
5555if __name__ == "__main__" :
0 commit comments