第十三届蓝桥杯省赛A组

试题A:裁纸刀

  • 分析:可以举几个例子出来发现规律是:4+(m-1)+(n-1)m;4表示边缘4刀,m-1表示横着切的数量,(n-1)m表示竖着切的数量

  • 结果:4+19+21*20=443

试题C:质因数个数

埃拉托斯特尼筛法求素数

  • 分析:先列出2到n之间的质数存入列表,再用n挨个除以质数列表,是倍数计数加一
import math
def countPrimes1(n):
    isPrime=[True for i in range(n)]
    for i in range(2,int(math.sqrt(n))+1):
        if isPrime[i]:
            for j in range(i*i,n,i):
                isPrime[j]=False
    re=[]
    for i in range(2,n):
        if isPrime[i]:
            re.append(i)
    return re
count=0
n=int(input())
re=countPrimes1(n)
for i in re:
    if n%i==0:
        count+=1
print(count)

试题J:数的拆分

题解


posted @ 2024-03-21 11:26  Frommoon  阅读(14)  评论(0编辑  收藏  举报