Python每日练习—2020.2.21

Python练习—完全平方数

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

初步代码实现:

import math
num = 0
while True:
    if math.sqrt(num + 100) == int(math.sqrt(num + 100)) and math.sqrt(num + 268) == int(math.sqrt(num + 268)):
            print(num)
    num += 1

事实上这个代码是没有截至的,因为没有设置限制,而且num从0开始,没有考虑到负数,所以这个代码还是有缺陷的
改进:最坏的结果是n的平方与(n+1)的平方刚好差168,由于是平方的关系,不可能存在比这更大的间隙。

import math
num = 0
while (num+1)**2-num*num <= 168:
    num += 1
for i in range((num+1)**2):
    if math.sqrt(i) == int(math.sqrt(i)) and math.sqrt(i+168) == int(math.sqrt(i+168)):
        print(i-100)

这样的话,负数也就可以输出

全部评论

相关推荐

10-22 19:18
上海大学 后端
jopajhhdjwnqk:水印都叠杀人书了
点赞 评论 收藏
分享
11-18 15:57
门头沟学院 Java
最终归宿是测开:这个重邮的大佬在重邮很有名的,他就喜欢打92的脸,越有人质疑他,他越觉得爽😂
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
昨天 15:43
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务