问题:一个四位数,知道其前两位和后两位分别相等,并且这个数还是一个平方数,求出这个数。
一个四位数,范围只能是1000~9999,前两位和后两位分别相等,也就是说,它的结构应该是aabb。最后,这个数是一个平方数。有的小伙伴可能不知道啥叫平方数,暂且解释下,所谓的平方数就是指该数等于一个整数的平方。比如3的平方是9,那么我们就说9是个平方数。
第一步,这是个四位数,前两位和后两位分别相等,我们将满足条件的数放到一个列表里。用python写出来的效果是这样的:
lst = []
for i in range(1000, 10000):
if (i // 1000 == (i % 1000) // 100) and ((i % 100) // 10 == i % 10):
lst.append(i)
第二步,这是一个平方数,所以它得等于一个整数的平方。代码效果:
for i in lst:
for j in range(33, 99):
if i == j * j:
print(i)
看到这,是不是有小伙伴可能会有疑问,内部循环的范围是啥意思?
这个问题我不作回答,留给大家思考,欢迎有看出来的小伙伴在评论区留言,告诉还在迷惑的朋友哦!
最后,完整代码如下:
lst = []
for i in range(1000, 10000):
if (i // 1000 == (i % 1000) // 100) and ((i % 100) // 10 == i % 10):
lst.append(i)
for i in lst:
for j in range(33, 99):
if i == j * j:
print(i)
最后打印输出的结果:
7744