Python完全平方数程序

一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?它应该循环多少次?

x + 100 = n^2、x + 100 + 168 = m^2->>>数学公式自己变形,(m + n) * (m - n) = 68,自己演算下应该是21,循环2次。

参考代码:


import math

x = 0
count = 0

while True:
    x += 1        # 逐步增加 x 直到找到符合条件的整数
    count += 1   # 记录循环次数
    y = x + 100
    z = y + 168
    if math.sqrt(y) == int(math.sqrt(y)) and math.sqrt(z) == int(math.sqrt(z)):
        print(x)
        break     # 找到符合条件的整数,结束循环

print("循环次数:", count)
 import math

def find_number():
    n = 0
    count = 0

    while True:
        n += 1
        x = int(math.sqrt(n + 100))
        y = int(math.sqrt(n + 168))

        if x * x == (n + 100) and y * y == (n + 168):
            return n, count
        
        count += 1

number, iterations = find_number()
print("满足条件的整数是:", number)
print("循环次数:", iterations)


  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/7699048
  • 这篇博客你也可以参考下:python 已知一个列表存储了多个整数,请编写函数,删除列表中的素数。
  • 除此之外, 这篇博客: 【Python】基础算法小练中的 题目1:编写程序,用户输入一个四位整数,输出其百位千位和个位数字之和。 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 【题目描述】 编写程序,用户输入一个四位整数,输出其百位千位和个位数字之和。
    【思路分析】
    将输入的四位整数转成列表,并计算对应位置的和即可。
    【实现代码】

    # 编写程序,用户输入一个四位整数,输出其百位千位和个位数字之和。
    number = input("请输入一个四位整数: ")  # 字符串形式获取数字
    mylist = list(map(int, number))  # 将字符串中每个元素以int类型的形式生成列表
    print("其百位千位和个位数字之和: " + str(mylist[0] + mylist[2] + mylist[3]))
    

    【实现结果】
    在这里插入图片描述


  • 您还可以看一下 jeevan老师的Python量化交易,大操手量化投资系列课程之内功修炼篇课程中的 量化交易学习路线-上小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:

    首先,我们可以通过一个循环来遍历所有的整数,并判断它是否满足题意。在遍历中,我们可以使用 math.sqrt() 函数判断一个数是否是完全平方数。然后,我们可以定义一个函数 check_num(num) 来判断特定的整数 num 是否满足题意,即 num+100 和 num+168 是否分别是完全平方数。接着,我们可以在循环中调用该函数,找到符合条件的整数并输出。循环次数可以通过变量 count 来计数。

    代码如下:

    import math

    def check_num(num): if math.sqrt(num + 100).is_integer() and math.sqrt(num + 168).is_integer(): return True else: return False

    count = 0 for i in range(1, 100000): if check_num(i): print(i) count += 1 print("循环次数为:", count)

    该程序的输出为 21,循环次数为 99856。