## 关于n!的一个问题
## n!中有多少个质因子P
def cal(n,p):
ans=0
while n:
ans+=n//p
n=n//p
return ans
## 利用这个算法,可以很快计算N!的末尾有多少个0
## 末尾0的个数等于n!因子中10的个数,又等于质因子5的个数
## 递归版本
## n!中质因子p的个数,实际上等于1-n中p的倍数n/p加上n/p!中质因子p的个数
def cal_2(n,p):
if n<p:
return 0
return n//p+cal(n//p,p)
n,p=map(int,input().strip().split())
print(cal(n,p))
print(cal_2(n,p))
pyhton--蓝桥杯--关于n!的一个问题
于 2024-04-08 22:15:05 首次发布