(Python)
从sympy导入integer_log
定义A002473号(n) :
def平分(f,kmin=0,kmax=1):
而f(kmax)>kmax:kmax<<=1
当kmax-kmin>1时:
kmid=kmax+kmin>>1
如果f(kmid)<=kmid:
kmax=kmid
其他:
kmin=kmid
返回kmax
定义f(x):
c=n+x
对于范围内的i(integer_log(x,7)[0]+1):
i7=7**i
m=x//i7
对于范围内的j(integer_log(m,5)[0]+1):
j5=5**j
r=m//j5
对于范围内的k(integer_log(r,3)[0]+1):
c-=(r//3**k).bit_length()
返回c
返回二分(f,n,n)#柴华武2024年9月16日