编写类,实现寻找"精致"的数:给定两个非负整数x和y,如果某一整数等于x^i+y^j,其中整数i>= 0且j>=0,那么我们认为该整数是一个"精致"的数。返回值小于或等于n(n<=200)的所有精致的数组成的列表。结果列表中每个值最多出现一次,同时请使用sorted保证结果唯一。输入输出示例及效果如下图:【参考代码行数:25行】
初始化代码参考
import math
class per:
def __init__(self, x, y, n):
self.x = x
self.y = y
self.n = n
def getL(self):
l = []
tmp = int(math.log(100, min(self.x, self.y))) + 1
for i in range( tmp + 1):
for j in range(tmp + 1):
v = self.x ** i + self.y ** j
if v <= self.n:
l.append(v)
return l
p = per(3, 7, 100)
res = p.getL()
print(sorted(set(res)))