题目:一个整数,它加上100后是一个完全平方数,
再加上268又是一个完全平方数,请问该数是多少?
方法:利用循环去判断x+100和x+268是否为完全平方数,没用使用其他函数,缺点运算速度慢
1 x=-100 2 while x<=2000: 3 y=x+100 4 z=x+268 5 p=0 6 q=0 7 if y==1: 8 p=1 9 else: 10 for i in range(1,int(y/2)): 11 if i**2==y: 12 p=1 13 continue 14 15 16 if z==1: 17 q=1 18 else: 19 for i in range(1,int(z/2)): 20 if i**2==z: 21 q=1 22 continue 23 24 25 if p==1 and q==1: 26 print(x) 27 28 x=x+1
【网上好办法】
方法一:
1 t = [] 2 for m in range(168): 3 for n in range(m): 4 if m**2 - n**2 == 168: 5 x = n**2 - 100 6 t.append(x) 7 print('符合条件的整数有:',t )
方法二:
1 x=[] 2 for m in range(-168,169): 3 for n in range(-168,169): 4 if (m+n)*(m-n)==168:#m,n都是整数 5 x.append(n**2-100) 6 x=set(x)#用集合的方法去掉重复值 7 x=list(x)#将集合类型改为列表类型 8 print('要求的值为:',x)
方法三:
1 print([n**2-100 for m in range(168) for n in range(m) if(m+n)*(m-n)==168])