鱼C论坛

 找回密码
 立即注册
查看: 2807|回复: 6

[技术交流] 代码交流

[复制链接]
发表于 2022-4-13 20:37:39 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本人Python菜鸟一枚,写了一段代码,分享出来请大家帮忙指点有无优化空间。

#求指定范围内的自幂数(如果在一个固定的进制中,一个n位自然数等于自身各个数位上数字的n次幂之和,则称此数为自幂数)。

for a in range(1,1000000):
    x = 0
    m = len(str(a))  #获取数字长度,即幂指数
    for b in str(a):
        x += int(b)**m
    if a == x:
        print(a)

运行结果如下:
1
2
3
4
5
6
7
8
9
153
370
371
407
1634
8208
9474
54748
92727
93084
548834
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-4-13 21:07:58 | 显示全部楼层
兄弟,你的代码已经很好了,如果要简化,可以试试:
[print(num) for num in range(1, 1000000) if num == sum([int(n)**len(str(num)) for n in str(num)])]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-4-13 21:13:13 | 显示全部楼层
傻眼貓咪 发表于 2022-4-13 21:07
兄弟,你的代码已经很好了,如果要简化,可以试试:

向大牛致敬!只是这个代码结果后面多了一个含的20个None的列表
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-4-14 08:14:29 From FishC Mobile | 显示全部楼层
hynet1024 发表于 2022-4-13 21:13
向大牛致敬!只是这个代码结果后面多了一个含的20个None的列表

没有啊?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-4-14 08:17:14 From FishC Mobile | 显示全部楼层
本帖最后由 傻眼貓咪 于 2022-4-14 08:51 编辑
hynet1024 发表于 2022-4-13 21:13
向大牛致敬!只是这个代码结果后面多了一个含的20个None的列表


我这代码不是要列表,而是要它的推导式,不用另外复值,直接运行代码便可,你说的 none 应该是把这个列表赋值给某个变量了吧?print 本身返回 none,该不会你是用 python 原本的 IDLE 吧?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-4-14 10:12:14 | 显示全部楼层
傻眼貓咪 发表于 2022-4-14 08:17
我这代码不是要列表,而是要它的推导式,不用另外复值,直接运行代码便可,你说的 none 应该是把这个列 ...

大神威武!确实是在IDLE下运行的,改在编辑模式下运行就没问题
追问:在你的电脑下获取10位的自幂数需要多久?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-4-14 10:16:50 From FishC Mobile | 显示全部楼层
本帖最后由 傻眼貓咪 于 2022-4-14 10:18 编辑
hynet1024 发表于 2022-4-14 10:12
大神威武!确实是在IDLE下运行的,改在编辑模式下运行就没问题
追问:在你的电脑下获取10位的 ...


10 位还没有测试过
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-11 17:55

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表