编写类,实现寻找"精致"的数,输出结果如图

编写类,实现寻找"精致"的数:给定两个非负整数x和y,如果某一整数等于x^i+y^j,其中整数i>= 0且j>=0,那么我们认为该整数是一个"精致"的数。返回值小于或等于n(n<=200)的所有精致的数组成的列表。结果列表中每个值最多出现一次,同时请使用sorted保证结果唯一。输入输出示例及效果如下图:【参考代码行数:25行】
初始化代码参考

img


输入输出参考

img

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)))