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

网上能够搜得到的答案为:

for i in range(85):

  for j in range(85):

    if i%2==0 and j%2==0 or i%2!=0 and j%2!=0:

      if i**2-j**2==168:

      x=j**2-100

      print(x)

输出的结果为:

-99
21
261
1581

但是经过验证,结果不符合题目要求。

经过重新编写,代码如下

 1 import math
 2 n = 0
 3 count = 0
 4 while True:
 5     number_1 = n + 100
 6     number_2 = n + 168
 7     number_1_sqrt = int(math.sqrt(number_1))
 8     number_2_sqrt = int(math.sqrt(number_2))
 9     if (number_1_sqrt **2 == number_1) and (number_2_sqrt**2 == number_2):
10         print(n)
11         break
12     n = n + 1

运行结果

156

经过检验,答案符合题意。

 
posted @ 2020-02-21 20:18  浮尘若  阅读(637)  评论(0)    收藏  举报