Python中强大的整数

假设我们有两个正整数x和y,我们可以说一个整数对于i> = 0和j> = 0的某些整数等于x ^ i + y ^ j是强大的。我们必须找到一个包含所有整数的列表-值小于或等于bound的强大整数。

因此,如果输入像x = 2且y = 3且边界为10,则输出将为[2,3,4,5,7,9,10],因为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 ^ 2

为了解决这个问题,我们将遵循以下步骤-

  • 将a,b初始化为0

  • res:=一个新列表

  • 如果x与1相同且y与1相同,则

    • 当x ^ a + 1 <= bound时

    • a:= a + 1

    • b:= 0

    • b:= b + 1

    • 如果x ^ a + y ^ b <=绑定,则

    • 除此以外,

    • 当x ^ a + 1 <=界时

    • 将x ^ a +1插入res

    • a:= a + 1

    • 而y ^ b + 1 <=界

    • 将y ^ b +1插入res

    • b:= b + 1

    • 在res末尾插入2

    • 如果绑定> = 2,则

    • 否则,当x与1相同时,则

    • 否则,当y与1相同时,则

    • 除此以外,

    让我们看下面的实现以更好地理解-

    示例

    class Solution:
       def powerfulIntegers(self, x, y, bound):
          a,b=0,0
          res=[]
          if x==1 and y==1:
             if bound>=2:
                res.append(2)
             elif x==1:
                while y**b+1<=bound:
                   res.append(y**b+1)
                   b+=1
             elif y==1:
                while x**a+1<=bound:
                   res.append(x**a+1)
                   a+=1
             else:
                while x**a+1<=bound:
                   if x**a+y**b<=bound:
                      res.append(x**a+y**b)
                      b+=1
             else:
                a+=1
                b=0
          return list(set(res))
    ob = Solution()print(ob.powerfulIntegers(2,3,10))

    输入项

    2,3,10

    输出结果

    [2, 3, 4, 5, 7, 9, 10]