📜  给定长度的完美平方数(1)

📅  最后修改于: 2023-12-03 15:27:36.169000             🧑  作者: Mango

给定长度的完美平方数

完美平方数是指一个数能够表示成另一个整数的平方的形式。例如,4是完美平方数,因为4=2^2,同样,9、16、25、36等也都是完美平方数。现在,我们需要编写一个程序,来找到指定长度的完美平方数。

思路

我们可以先从最小的完美平方数开始找起,即1、4、9、16……然后不断增加平方数的大小,直到找到指定长度的完美平方数为止。

对于每个找到的完美平方数,我们都可以使用平方根函数sqrt()将其反算成原数。

代码实现
import math

def find_perfect_squares(length):
    squares_list = []
    i = 1
    while len(squares_list) < length:
        square = i ** 2
        if int(math.sqrt(square)) ** 2 == square:
            squares_list.append(square)
        i += 1
    return [int(math.sqrt(square)) for square in squares_list]

# 测试示例
print(find_perfect_squares(5))
代码说明
  1. 我们首先导入了Python的math模块,以便调用其中的平方根函数。
  2. 然后定义了一个名为find_perfect_squares的函数,该函数接受一个整数参数length,即指定长度。
  3. 我们初始化了一个空列表squares_list,来存储找到的完美平方数。
  4. 然后通过一个while循环来不断增加平方数的大小,直到找到指定长度的完美平方数为止。循环中的i表示当前计算的数字。
  5. 每次计算出i的平方之后,我们利用平方根函数sqrt()判断它是否为完美平方数。
  6. 如果是完美平方数,我们就将它加入squares_list中。
  7. 最后,我们利用列表解析式,将所有的完美平方数反算回来,得到它们的原数,并返回结果。
  8. 在代码的最后,我们进行了一次简单的测试,来检验我们的函数是否正确。
运行结果

将以上代码保存为一个名为perfect_squares.py的Python文件,并在命令行中运行它,我们可以得到如下输出结果:

[1, 2, 3, 4, 5]

这表示我们找到了长度为5的完美平方数,并将它们反算回来得到了1、4、9、16、25这五个数,它们都是完美平方数。