由于
aaa⋯≡1(modm),考虑
a 在模
m 意义下的阶
δm(a),它显然是
φ(m) 的因数。设
φ(m)=∏i=1npiαi,记
f(S)=∏i∈Spiαi,g(S)=∏i∈Spi,则
gcd(φ(m),aaa⋯)∈⋃Sf(S)。
考虑枚举
S,显然
S 不能包含
m 的质因子。那么现在对于
a 的限制为
af(S)≡1(modm),g(S)∣a,以及
gcd(a,mf(S)φ(m))=1。由于这些限制都可以看作是独立的,这个概率可以写成
mg(S)f(S)∏pi∣φ(m),i∈/Spp−1。分母是固定的,分子可以乘法分配律直接计算。
m 和
φ(m) 的质因数分解可以依靠预处理
≤106 的数的最小质因子计算,因为可能需要给质因子去重,时间复杂度为
O(m1/3+Tlogmloglogm)。