Python练手程序-05

来源:互联网 发布:2016淘宝店铺装修教程 编辑:程序博客网 时间:2024/04/29 07:09

题目:

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

思路:

1、设这个数为x,由题目描述可得:

x+100=n2x+100+168=m2

由此可得:

m2n2=168(nm)(n+m)=168

设 m = n+j
可得:

(n+j)2n2=168j2+2nj=168

由上面可以看到,1<= j <= 12

所以,n=168j22j=84j+j2
因此, 13 <= n <= 84

# 先来求解j的范围j=1while j**2 +2*j <=168:   j += 1 all_m=[]all_n=[]all_x=[]for j in range(1,j+1):    n = 84/j - j/2    if int(n) == n:        x = n**2 -100        all_x.append(int(x))        all_n.append(int(n))        all_m.append(int(n)+j)print(all_x)print(all_m)print(all_n)
[1581, 261, 21, -99][43, 23, 17, 13][41, 19, 11, 1]
原创粉丝点击