Heywhale-python 基础闯关

这篇博客记录了Heywhale平台上的Python基础闯关题解,包括查找10000以内的完美数、1000内的水仙花数、素数判断,以及300到500内的回文素数等,同时探讨了约瑟夫环问题的解决方案。
摘要由CSDN通过智能技术生成

闯关时部分题目个人解答:

1.找出10000以内的完美数,保存到列表L1中

#内循环用到的参数要在内循环里面定义,如果在外面循环定义参数,会导致出现一直累计的情况
L1=[]
for i in range(1,10001):
    d=[] #要在循环内定义一个列表装i的真因子,如果把列表装在外面,那就会随着i的循环一直把把j放进去,而不是一个i对应自己的真因子
    for j in range(1,int(i/2+1)):#i的最大约数不超过其中间值
        if i%j==0:
            d.append(j)
    sum1=0#也是要在这里定义参数
    for b in d:
        sum1 += b
    if i == sum1:
        L1.append(i)
print(L1)
out:
[6, 28, 496, 8128]

2.寻找1000内的水仙花数,并保存到列表L2中;

#tips:水仙花数也被称为超完全数字不变数、自恋数、自幂数、阿姆斯特朗数,它是一个3位数,该数字每个位上数字的立方之和正好等于它本身
#例如:$1^3 + 5^3+ 3^3=153$
L2 =[]
# 开始写作业 加油
for i in range(100,1001):
    a=str(i)#将i换成字符串,为了遍历取i上每位数字
    b=[int(x)for x in a ]#遍历取数字,并转换成列表
    t=0
    for y in b:
        t+=y**3
    if i==t:
        L2.
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值