版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/maotianyi941005/article/details/85915644
970. Powerful Integers
- User Accepted:595
- User Tried:1116
- Total Accepted:601
- Total Submissions:1892
- Difficulty:Easy
Given two non-negative integers
x
andy
, an integer is powerful if it is equal tox^i + y^j
for some integersi >= 0
andj >= 0
.Return a list of all powerful integers that have value less than or equal to
bound
.You may return the answer in any order. In your answer, each value should occur at most once.
Example 1:
Input: x = 2, y = 3, bound = 10 Output: [2,3,4,5,7,9,10] Explanation: 2 = 2^0 + 3^0 3 = 2^1 + 3^0 4 = 2^0 + 3^1 5 = 2^1 + 3^1 7 = 2^2 + 3^1 9 = 2^3 + 3^0 10 = 2^0 + 3^2Example 2:
Input: x = 3, y = 5, bound = 15 Output: [2,4,6,8,10,14]Note:
1 <= x <= 100
1 <= y <= 100
0 <= bound <= 10^6
class Solution:
def powerfulIntegers(self, x, y, bound):
"""
:type x: int
:type y: int
:type bound: int
:rtype: List[int]
"""
pow = []
if bound == 0:return []
xi = int(math.log(bound,x)) if x != 1 else bound
yi = int(math.log(bound,y)) if y != 1 else bound
for i in range(xi+1):
for j in range(yi+1):
if (x**i + y**j) <= bound:
if x**i + y**j not in pow:pow.append(x**i + y**j)
return pow