第十一届蓝桥杯python大学组国赛真题
文章目录
试题 A: 美丽的 2
【问题描述】
小蓝特别喜欢 2,今年是公元 2020 年,他特别高兴。
他很好奇,在公元 1 年到公元 2020 年(包含)中,有多少个年份的数位中包含数字 2?
if __name__ == '__main__':
count = 0
for i in range(1,2021):
if '2' in str(i):
count += 1
print(count)
试题 B: 合数个数
【问题描述】
一个数如果除了 1 和自己还有其他约数,则称为一个合数。例如:1, 2, 3不是合数,4, 6 是合数。
请问从 1 到 2020 一共有多少个合数。
if __name__ == '__main__':
count = 0
# temp = 0
for i in range(1,2021):
temp = 0
for j in range(2,i//2+1):
if i%j == 0:
count += 1
break
print(count)
试题 C: 阶乘约数
【问题描述】
定义阶乘 n! = 1 × 2 × 3 × · · · × n。
请问 100! (100 的阶乘)有多少个约数。
思路:惟一分解定理
约数个数 = (a1 + 1)(a2 + 1)……(ak + 1)
也就是说我们需要求出100!阶乘的所有质数;但是太大太多,一定是不好求的;所以我们改为求每个因数的质数,然后记录数量就可以。
if __name__ == '__main__':
dic = {
}
sums = 1
for i in range(2,100):
pri = True
for j in range(2,i//2+