python实现查找满足条件的数字

问题:一个四位数,知道其前两位和后两位分别相等,并且这个数还是一个平方数,求出这个数。

一个四位数,范围只能是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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值