1 真题
2 解析
难度系数:⭐
考察题型:枚举 数论
涉及知识点:模块 质数 纯数
思路分析:
顾名思义,纯质数就是纯数加上质数。
所以只要定义两个函数分别判断纯数和质数,再最后一起遍历就搞定了。
本以为很简单,但一做发现难点在 20210605 这个大数字上。
遍历千万级个的数字,几分钟程序都没跑完,这咋办?程序跑不完可就凉凉了~
切入关键点:时间复杂度
带着目标,耐心阅读一行行代码,最后找到了突破点。
原来要先判断纯数,再判断质数。因为前者运行快,后者运行慢。
3 代码
#纯数
def pure(x):
while x:
if x%10 in [0,1,4,6,8,9]:
return False
x//=10 #注意:整除是 //
return True
#质数
def prime(x):
for i in range(2,int(x**0.5)+1):
if x%i==0:
return False
return True
#纯质数
cnt=0
for i in range(1,20210606):
if pure(i) and prime(i): #注意:先判断纯数,再判断质数
print(i)
cnt+=1
print(cnt) #输出结果:1903
📍我写的是关于蓝桥杯的系列题解,感谢关注我的朋友们,我会持续输出高质量文章💪🏻 蓝桥杯python组十二届决赛真题+解析+代码(通俗易懂版)_编程有了思路-CSDN博客小蓝家的网络带宽是 200 Mbps,请问,使用小蓝家的网络理论上每秒钟最多可以从网上下载多少 MB 的内容。如果一个正整数只有 1 和它本身两个约数,则称为一个质数(又称素数)。如果一个日期中年月日的各位数字之和是完全平方数,则称为一个完全日期。https://blog.csdn.net/m0_55148406/article/details/122790101