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^03=2^1+3^04=2^0+3^15=2^1+3^17=2^2+3^19=2^3+3^010=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]