特立独行的幸福 (25 分)
对一个十进制数的各位数字做一次平方和,称作一次迭代。如果一个十进制数能通过若干次迭代得到 1,就称该数为幸福数。1 是一个幸福数。此外,例如 19 经过 1 次迭代得到 82,2 次迭代后得到 68,3 次迭代后得到 100,最后得到 1。则 19 就是幸福数。显然,在一个幸福数迭代到 1 的过程中经过的数字都是幸福数,它们的幸福是依附于初始数字的。例如 82、68、100 的幸福是依附于 19 的。而一个特立独行的幸福数,是在一个有限的区间内不依附于任何其它数字的;其独立性就是依附于它的的幸福数的个数。如果这个数还是个素数,则其独立性加倍。例如 19 在区间[1, 100] 内就是一个特立独行的幸福数,其独立性为 2×4=8。
另一方面,如果一个大于1的数字经过数次迭代后进入了死循环,那这个数就不幸福。例如 29 迭代得到 85、89、145、42、20、4、16、37、58、89、…… 可见 89 到 58 形成了死循环,所以 29 就不幸福。

本题就要求你编写程序,列出给定区间内的所有特立独行的幸福数和它的独立性。

输入样例 1:

10 40
输出样例 1:

19 8 23 6 28 3 31 4 32 3

Accepted代码及注释:

l,r=input().split()
l,r=int(l),int(r)
list,ans,child=[],[],{} #list存所有的幸福树;ans存独立的幸福树,即不依赖于区间内的其他数字;child存区间内依赖该幸福数(key)的幸福数的个数(value)
for num in range(l,r+1):#枚举区间所有数字sum = 0tnum = numvis={}while sum!=1 or vis[sum]<2:sum = 0for digit in str(tnum):#对一个十进制的各位数字做一次平方和sum += int(digit)**2vis.setdefault(sum,0)#字典初始化vis[sum]+=1 #一次迭代结束 该数字在迭代过程中出现次数+1 if(vis[sum]==2):#该数字在迭代过程中出现次数==2 即首次出现死循环 当前枚举的数字num是不幸福数breaktnum = sumif(sum==1):#数字num是幸福数 若干次迭代结束时平方和sum==1ans.append(num)#存进幸福数数组tnum = numsum = 0child.setdefault(num,0) #计算这个幸福数的独立性 即数依赖于这个数num的幸福数的个数while(sum!=1):sum = 0for digit in str(tnum):sum += int(digit) ** 2list.append(sum) #对幸福数迭代 迭代过程中出现的数都是幸福数 全部加进list中 但对num进行迭代 幸福数num本身没有进入list,即如果一个幸福数是独立的,在有限区间[l,r]内不依附于其他数字,则不会出现在list中tnum = sumchild[num]+=1 #依赖于幸福数num的幸福数的个数+1 #一个幸福数num的child值为num迭代到1的过程中产生的全部sum值的个数 因为迭代到1就结束循环 过程显然是没有产生重复sum值的import mathdef isPrime(n):if n <= 1:return Falsefor i in range(2, int(math.sqrt(n)) + 1):if n % i == 0:return Falsereturn Truefor item in ans:if item not in list:#出现在list中的幸福数都是其他幸福数迭代过程中产生的if isPrime(item):child[item]*=2print(item,child[item])if(len(ans)==0):print("SAD")

Python判断素数的方法

import mathdef isPrime(n):if n <= 1:return Falsefor i in range(2, int(math.sqrt(n)) + 1):if n % i == 0:return Falsereturn True

特立独行的幸福(25分)Python相关推荐

  1. 【CCCC】L2-029 特立独行的幸福 (25分),模拟题,set用法

    problem L2-029 特立独行的幸福 (25分) 对一个十进制数的各位数字做一次平方和,称作一次迭代.如果一个十进制数能通过若干次迭代得到 1,就称该数为幸福数.1 是一个幸福数.此外,例如 ...

  2. 特立独行的幸福 (25 分)

    特立独行的幸福 (25 分) 对一个十进制数的各位数字做一次平方和,称作一次迭代.如果一个十进制数能通过若干次迭代得到 1,就称该数为幸福数.1 是一个幸福数.此外,例如 19 经过 1 次迭代得到 ...

  3. L2-029 特立独行的幸福 (25 分)-PAT 团体程序设计天梯赛 GPLT

    对一个十进制数的各位数字做一次平方和,称作一次迭代.如果一个十进制数能通过若干次迭代得到 1,就称该数为幸福数.1 是一个幸福数.此外,例如 19 经过 1 次迭代得到 82,2 次迭代后得到 68, ...

  4. 特立独行的幸福 (25分)

    对一个十进制数的各位数字做一次平方和,称作一次迭代.如果一个十进制数能通过若干次迭代得到 1,就称该数为幸福数.1 是一个幸福数.此外,例如 19 经过 1 次迭代得到 82,2 次迭代后得到 68, ...

  5. 7-120 特立独行的幸福 (25分)

    对一个十进制数的各位数字做一次平方和,称作一次迭代.如果一个十进制数能通过若干次迭代得到 1,就称该数为幸福数.1 是一个幸福数.此外,例如 19 经过 1 次迭代得到 82,2 次迭代后得到 68, ...

  6. l2-029 特立独行的幸福 (25分)_霜降后盆栽幸福树,调整4个地方,不用再怕掉叶子了...

    原标题:霜降后盆栽幸福树,调整4个地方,不用再怕掉叶子了 幸福树,是一款颜值非常高的家庭盆栽绿植,其枝叶四季常青,在室内搁置的情况下,不但能够净化空气,美化家居,同时还能给人们带来美好的祝福,毕竟在传 ...

  7. 7-113 特立独行的幸福 (20 分) C语言

    对一个十进制数的各位数字做一次平方和,称作一次迭代.如果一个十进制数能通过若干次迭代得到 1,就称该数为幸福数.1 是一个幸福数.此外,例如 19 经过 1 次迭代得到 82,2 次迭代后得到 68, ...

  8. 2022 PTA 模拟赛 点赞狂魔 (25 分) python

    微博上有个"点赞"功能,你可以为你喜欢的博文点个赞表示支持.每篇博文都有一些刻画其特性的标签,而你点赞的博文的类型,也间接刻画了你的特性.然而有这么一种人,他们会通过给自己看到的一 ...

  9. 7-10 简版田忌赛马 (25 分)python

    输入 3 3 92 83 71 95 87 74 2 20 25 21 12 10 1 2 3 24 5 6 7 8 9 12 11 13 15 19 22 34 14 21 44 99 输出 200 ...

  10. 天梯赛L2-029 特立独行的幸福

    L2-029 特立独行的幸福 (25分) 对一个十进制数的各位数字做一次平方和,称作一次迭代.如果一个十进制数能通过若干次迭代得到 1,就称该数为幸福数.1 是一个幸福数.此外,例如 19 经过 1 ...

最新文章

  1. 给初学者的深度学习入门指南
  2. ⑨⑧借鉴成功者经验,吸取失败者教训
  3. 内存回收的一些基本方法
  4. 计算机四级操作系统原理知识汇总,2015年全国计算机四级《操作系统原理》考试内容...
  5. 【OI】WERTYU UVa 10082
  6. SpringBoot 报错Field XXX required a bean of type XXX that could not be found.
  7. python扫雷游戏课程设计小组任务计划与分配表_Python开源扫雷游戏由网瘾少年制作,转手后月入18K,附赠所有源文件...
  8. 最新深度学习文本分类模型汇总(github开源)
  9. numpy.reshape
  10. 根据屏幕分辨率设置 layer.open 的大小
  11. 操作系统实验一 进程管理
  12. 未来,我们终将共同沐浴在实时光追之下
  13. aspcms系统加密后https后台无法登录解决办法
  14. IntelliJ IDE
  15. 2020,不会分布式怎么可以,这2份pdf共1000+,从原理到系统实现都包含了
  16. Mac OS X Lion安装MacPorts(让你在Mac的Shell下更加游刃有余)
  17. 自考第一阶段读书有感
  18. Flink随堂笔记:Connectors概述
  19. Firebird 2.5的部分操作
  20. php配置libzip,PHP配置Configure报错:Please reinstall the libzip distribution

热门文章

  1. 股票实时行情数据有哪些分类?
  2. uniapp switch按钮的使用开关按钮效果demo(整理)
  3. 15000cd是多少流明_光通量(lm)发光强度(cd)照度单位(lux)之间的关系
  4. 前馈神经网络练习:使用tensorflow进行葡萄酒种类识别
  5. 多元逻辑回归 · 数学推导过程及代码实现完全解析
  6. 内存映射图( 网络IO和磁盘IO详解)
  7. 经典书籍《宽客人生》阅读心得
  8. OutMan——C语言中文件的操作
  9. LintCode 吹气球
  10. android 没有menu菜单键,android之onCreateOptionsMenu失效,按菜单键无反应