(Python)
从functools导入lru_cache
从itertools导入组合
从数学导入prod,阶乘,gcd
从分数导入分数
从sympy.utilities.iterables导入分区
从sympy import mobius,除数
@lru_cache(最大大小=无)
def b(n):返回int(sum(Fraction(1<<sum(p[r]*p[s]*gcd(r,s)表示r,s在组合中(p.keys(),2))+sum(((q>>1)+1)*r+(q*r*(r-1)>>1)表示q,r在p.items())),prod(q**r*阶乘(r)表示q,r在p.items())))表示p在分区(n)中)
@lru_cache(最大大小=无)
定义c(n):对于范围(1,n)中的k,返回n*b(n)-和(c(k)*b(n-k))
如果n为1,则返回除数(n,生成器=True)中d的和(mobius(d)*c(n//d))//#柴华武2024年7月10日