第十三届蓝桥杯省赛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)
-
14分;n太大,埃拉托斯特尼筛法适合n小的情况
试题J:数的拆分
题解