Python每日一题 - 6

前言:

本人因喜欢python和c语言等程序设计语言,希望能够在这里和大家共同学习共同进步。

因个人喜好喜欢做题,所以想出一个系列专栏关于python的习题专集,希望大家喜欢。

希望能在这里分享学习的一些知识碎片,接触时间不长,如果文章有任何错误,欢迎大家指正。

如果喜欢我的文章还请大家不吝动手给我点赞收藏关注哦,留下你来过的足迹,让我眼熟你。

第六题    求一个整数,他加上100后是一个完全平方数,再加上168又是一个完全平方数。请问该数是多少?

要求:

1.这个整数加上100后是一个完全平方数,再加上168又是一个完全平方数。

可以先自己看要求写出程序,然后看提示及答案,更有助于提高自己。

提示:1.完全平方数开根号后在平方还是其本身,如\sqrt{9}\times \sqrt{9}= 9            

            2.而非完全平方数取整后平方不是其本身。

import math
def fact(m,n):
    for i in range(1,200):
        a = int(math.sqrt(i+m))
        b = int(math.sqrt(i+n))
        if a*a==i+m and b*b==i+n:
            return i
res = fact(m,n)
print(res)

不用 def 也可以求

import math
m = 100
n = 168
for i in range(1,200):
    a = int(math.sqrt(i+m))
    b = int(math.sqrt(i+n))
    if a**2==i+m and b**2==i+n:
        print(i)
        break

以上均应用for循环,下面尝试用while循环

import math
def fact(m,n):
    x = 0
    while(1):
        a = int(math.sqrt(x+m))
        b = int(math.sqrt(x+n))
        if a*a==x+m and b*b = x+n:
            return x
        x +=1
res = fact(100,168)
print(res)

保存并运行程序,结果如下所示:

>>>156

你可能感兴趣的:(Python每日一题)