整数阶乘组合计算

问题描述:给定正整数n、a,求最大的k,使n!可以被a^k整除但不能被a^(k+1)整除。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬

n和a采用一次input()调用输入,两个数使用逗号(,)分隔,直接输出k值。

例如:输入100,9

   输出24

import math

i=input()
ii=i.split(',')
n=eval(ii[0])
a=eval(ii[1])
jc=math.factorial(n)
l=int(math.log(jc,a))
while l>=0:
if(jc%a**l==0 and jc%a**(l+1)!=0):
print(l)
break
l=l-1

posted @ 2019-09-27 12:13  黄伟564  阅读(577)  评论(1编辑  收藏  举报