题目:一个整数,它加上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])