第十一届蓝桥杯python大学组国赛真题(部分题解)

本文提供了第十一届蓝桥杯Python大学组国赛的部分真题及解析,包括数字2出现的年份数量、合数个数、阶乘约数、本质上升序列、玩具蛇的摆放方案、天干地支纪年、重复字符串的修改、答疑顺序优化、补给路线规划和蓝跳跳走法等题目,涵盖了算法和数学应用等多个方面。
摘要由CSDN通过智能技术生成

第十一届蓝桥杯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+
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

南岸青栀*

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值