前言
今天做一套蓝桥杯python元年的国赛题目,我数了一下5道选择,可以说是福利之年了,以后都不会出现这种情况了,当时python组别刚出现,估计很多大学和专业连python这门课都没开设,或部分开设,咱们废话少嗦直接开敲,这次不看源码哈。 发现有的同学还不清楚比赛环境,贴一个我们学校机子的供参考哈。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/316d3023e1a04685ae115c0b333e584a.png)
A:美丽的2
数数题,上来3分钟签个道
ans=0
for i in range(1,2021):
if str(i).count('2')>0:
ans+=1
print(ans)
要比赛了就给大家搜一手官方解释趴 ![在这里插入图片描述](https://img-blog.csdnimg.cn/870989b53ee14df3b398d5c3b8d79e61.png)
B:合数个数
这道题就写个简单check函数判断是不是质数,循环输一下就行。
ans=0
def check(i):
for j in range(2,i):
if i%j==0:
return True
else:
return False
for i in range(4,2021):
if check(i):
ans+=1
print(ans)
C:阶乘约数
这题我写了一个跑的时间有点长,上网学习了一个大家看下。 总之没第一反应想的那么简单,它要求的是正约数的个数,那它的因子进行排列组合的乘积当然也是它的正约数,质数也可以是约数,而且质数也可以是它的因子组成的,如果用每个因子一个个去除累加次数时间太久,还是通过分解的方式好用,而且约数进行相互间的组合数,就是它们的乘积和
import os
import sys
# 计算100的阶乘有多少因数
n = 100 # 阶乘的参数
p = [2] # 质数列表,初始化为[2]
# 找出100以内的所有质数,存入p
for i in range(3, n + 1):
j = 2
while j |