美文网首页Python学习笔记
Python编程练习003:完全平方数

Python编程练习003:完全平方数

作者: Yang_6234 | 来源:发表于2020-04-27 07:53 被阅读0次

    题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?

    程序分析:

    假设该数为 x。
    1、则:x + 100 = n2, x + 100 + 168 = m2
    2、计算等式:m2 - n2 = (m + n)(m - n) = 168
    3、设置: m + n = i,m - n = j,i * j =168,i 和 j 至少一个是偶数
    4、可得: m = (i + j) / 2, n = (i - j) / 2,i 和 j 要么都是偶数,要么都是奇数。
    5、从 3 和 4 推导可知道,i 与 j 均是大于等于 2 的偶数。
    6、由于 i * j = 168, j>=2,则 1 < i < 168 / 2 + 1。
    7、接下来将 i 的所有数字循环计算即可。
    程序源代码:

    方法一:
    for i in range(1,85):
        if 168 % i == 0:
            j = 168 / i;
            if  i > j and (i + j) % 2 == 0 and (i - j) % 2 == 0 :
                m = (i + j) / 2
                n = (i - j) / 2
                x = n * n - 100
                print(x)
    
    
    运行结果:

    -99
    21
    261
    1581

    方法二:
    n=0
    while (n+1)**2-n*n<=168:
        n+=1
    
    for i in range((n+1)**2):
        if i**0.5==int(i**0.5) and (i+168)**0.5==int((i+168)**0.5):
            print(i-100)
    
    

    相关文章

      网友评论

        本文标题:Python编程练习003:完全平方数

        本文链接:https://www.haomeiwen.com/subject/xquewhtx.html