定义kempner(p):对于范围(p+1)中的m:如果阶乘(m)%p==0:返回m返回0定义keller_olson_eta_function(p,k):runningSum=0对于范围(3,k+1)中的j:runningSum=运行总和+kempner(p**j)返回运行Sum定义keller_olson_formula(p,k):如果k==1:返回阶乘(p)其他:偏=(阶乘(p)*((p-1)**p))*(p**p)如果k==2:返回部分其他:返回部分*(p**keller_olson_eta_function(p,k))定义count_pp_modn(n):因子=列表(因子(n))runningProduct=1对于因子中的f:runningProduct=runningProduct*keller_olson_formula(f[0],f[1])返回runningProduct