【python】判断一个自然数是否是某个数的平方?

Python013

【python】判断一个自然数是否是某个数的平方?,第1张

题目:设计一个算法,判断给定的一个数n是否是某个数的平方,不能使用开方运算。

分析:二分查找法。查找从1~n的数字中,是否存在一个数m,使得m的平方为n。首先判断mid = (1 + n) / 2的平方power与m的大小,如果power >m,那么说明在[1, mid - 1]区间继续查找,否则在[mid + 1, n]区间继续查找。

code:

def isPower(n):

    low = 1

    high = n

    while low <high:

        mid = (high + low) / 2

        power = mid * mid

        # 接着在1~mid-1区间查找

        if power >n:

            high = mid - 1

        # 接着在mid+1~n区间内查找

        elif power <n:

            low = mid + 1

        else:

            return True

    return False

if __name__ == "__main__":

    n1 = 15

    if isPower(n1):

        print(str(n1) + "某个自然数的平方")

    else:

        print(str(n1) + "不是某个自然数的平方")

程序的运行结果:

15不是某个自然数的平方

利用input()函数获取一个数字a,a=input("请输入数字:")。

而Python专用的科学计算扩展库就更多了,例如如下3个十分经典的科学计算扩展库:NumPy、SciPy和matplotlib,它们分别为Python提供了快速数组处理、数值运算以及绘图功能。

由于Python语言的简洁性、易读性以及可扩展性,在国外用Python做科学计算的研究机构日益增多,一些知名大学已经采用Python来教授程序设计课程。

例如卡耐基梅隆大学的编程基础、麻省理工学院的计算机科学及编程导论就使用Python语言讲授。众多开源的科学计算软件包都提供了Python的调用接口,例如著名的计算机视觉库OpenCV、三维可视化库VTK、医学图像处理库ITK。