在 Python 中不使用 sqrt 函数来检查数字是否为完全平方数的程序
pythonserver side programmingprogramming更新于 2025/12/17 14:04:17
假设我们有一个数字 n,我们必须检查 n 是否为完全平方数。完全平方数 k 可以表示为 k = a * a,其中 a 为某个整数。我们必须在不使用内置平方根函数的情况下解决这个问题。
因此,如果输入为 n = 121,则输出将为 True,因为 121 = 11*11。
要解决这个问题,我们将遵循以下步骤 −
如果 n 与 0 相同或 n 与 1 相同,则
返回 True
start := 2
stop := n / 2 的 floor
当 start <= stop 时,执行
temp := 从 start 到 stop 的所有数字的列表
k := 中间元素temp
k_squared := k * k
如果 k_squared 与 n 相同,则
返回 True
如果 k_squared > n,则
start := temp[0]
stop := k - 1
否则,
start := k + 1
stop := temp 的最后一个元素
返回 False
示例
让我们看看下面的实现以便更好地理解
def solve(n): if n == 0 or n == 1: return True start = 2 stop = n // 2 while start <= stop: temp = range(start, stop + 1) k = temp[len(temp) // 2] k_squared = k * k if k_squared == n: return True if k_squared > n: start = temp[0] stop = k - 1 else: start = k + 1 stop = temp[-1] return False n = 121 print(solve(n))
输入
121
输出
True
相关文章
有用资源
python 参考教程 - 该教程包含有关 python 的更多信息:https://www.cainiaomax.com/python/

