在Python中检查数字是否是完全平方数而不使用sqrt函数的程序

在Python中检查数字是否是完全平方数而不使用sqrt函数的程序

假设我们有一个数字n,我们必须检查是否n是一个完全平方数。完全平方数k可以表示为k = a * a,其中a是整数。我们必须在不使用内置平方根函数的情况下解决这个问题。

因此,如果输入为n = 121,则输出为True,因为121 = 11 * 11。

为了解决这个问题,我们将按照以下步骤进行 –

  • 如果n与0相同或n与1相同,那么
    • 返回True
  • 开始:= 2

  • 停止:= n / 2的地板

  • 当开始<=停止时,执行

    • temp:=从开始到停止的所有数字的列表

    • k:temp的中间元素

    • k_squared:= k * k

    • 如果k_squared与n相同,则

      • 返回True
    • 如果k_squared > n,则
      • 开始:= temp [0]

      • 停止:= k-1

    • 否则

      • 开始:= k + 1

      • 停止:= 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教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程