Python3经典100道练习题003

时间:2023-02-13 12:49:54

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