lcm(i,j)=i*j/gcd(i,j);
积性函数的定义
- 若f(n)f(n)的定义域为正整数域,值域为复数,即f:Z+→Cf:Z+→C,则称f(n)f(n)为数论函数。
- 若f(n)f(n)为数论函数,且f(1)=1f(1)=1,对于互质的正整数p,qp,q有f(p⋅q)=f(p)⋅f(q)f(p⋅q)=f(p)⋅f(q),则称其为积性函数。
- 若f(n)f(n)为积性函数,且对于任意正整数p,qp,q都有f(p⋅q)=f(p)⋅f(q)f(p⋅q)=f(p)⋅f(q),则称其为完全积性函数。
狄利克雷卷积与莫比乌斯反演
- 数论函数ff和gg狄利克雷卷积定义为(f∗g)(n)=∑d|nf(d)⋅g(nd)(f∗g)(n)=∑d|nf(d)⋅g(nd),狄利克雷卷积满足交换律、结合律,对加法满足分配律,存在单位元函数e(n)=[n=1]e(n)=[n=1]使得f∗e=f=e∗ff∗e=f=e∗f,若ff和gg为积性函数则f∗gf∗g也为积性函数。
- 狄利克雷卷积的一个常用技巧是对于积性函数ff与恒等函数II的卷积的处理,例如n=∏ti=1pkii,g(n)=∑d|nf(d)n=∏i=1tpiki,g(n)=∑d|nf(d),则有g(n)=∏ti=1∑kij=0f(pji)g(n)=∏i=1t∑j=0kif(pij)。
- 莫比乌斯反演也是对于g(n)=∑d|nf(d)g(n)=∑d|nf(d)的讨论,但是不要求ff是积性函数,适用于已知g(n)g(n)求f(n)f(n)的情况,由于I∗μ=eI∗μ=e,则g∗μ=f∗I∗μ=f∗e=fg∗μ=f∗I∗μ=f∗e=f,即f(n)=∑d|ng(d)⋅μ(nd)f(n)=∑d|ng(d)⋅μ(nd),类似地有g(n)=∑n|df(d)⇒f(n)=∑n|dg(d)⋅μ(dn)g(n)=∑n|df(d)⇒f(n)=∑n|dg(d)⋅μ(dn),二项式反演也是类似的技巧。有一个例子可以看出欧拉函数和莫比乌斯函数之间的关系,由于∑d|nφ(d)=id(n)∑d|nφ(d)=id(n),所以φ(n)=∑d|nμ(d)ndφ(n)=∑d|nμ(d)nd,也即φ(n)n=∑d|nμ(d)dφ(n)n=∑d|nμ(d)d。
题目列表:
51Nod 1244 - 莫比乌斯函数之和
51Nod 1239 - 欧拉函数之和
BZOJ 3944 - Sum
HDU 5608 - function
51Nod 1238 - 最小公倍数之和 V3
51Nod 1237 - 最大公约数之和 V3
51Nod 1227 - 平均最小公倍数
Tsinsen A1231 - Crash的数字表格
SPOJ DIVCNT2 - Counting Divisors (square)
51Nod 1222 - 最小公倍数计数(复杂度分析)
BZOJ 4176 - Lucas的数论
51Nod 1220 - 约数之和
51Nod 1584 - 加权约数和
ZOJ 3881 - From the ABC conjecture(不需要使用正文方法)
BZOJ 3512 - DZY Loves Math IV
ZOJ 5340 - The Sum of Unitary Totient(常规积性函数求和,数据组数较多,只可分段打表)
SPOJ DIVCNT3 - Counting Divisors (cube)(常规积性函数求和,注意代码长度限制,不可打表)
51Nod 1575 - Gcd and Lcm(常规积性函数求和,可分段打表)
51Nod 1847 - 奇怪的数学题(非常规积性函数求和,综合题,可分段打表)