Contest5408 - 數論函式

August_Light發表於2024-07-28

A gcd

\[\begin{aligned} & \sum\limits_{i=1}^n \sum\limits_{j=1}^n [\gcd(i,j) \in P] \\ =& \sum\limits_{d=1}^n [d \in P] \sum\limits_{i=1}^n \sum\limits_{j=1}^n [\gcd(i,j) = d] \\ =& \sum\limits_{d=1}^n [d \in P] \sum\limits_{i=1}^{\lfloor \frac n d \rfloor} \sum\limits_{j=1}^{\lfloor \frac n d \rfloor} [\gcd(i,j) = 1] \\ =& \sum\limits_{d=1}^n [d \in P] \times (2 S_\varphi(\lfloor \frac n d \rfloor) - 1) \\ \end{aligned}\]

時間複雜度 \(\Theta(n)\)

B 完全平方數

洛谷原題 P4318 完全平方數

C 尤拉函式

簡要題意:給定一個數 \(n\) 的唯一分解 \(\prod\limits_{i=1}^m p_i^{q_i}\),求 \(n \leftarrow \varphi(n)\) 幾次能使 \(n = 1\)\(p_i \le 10^5, q_i \le 10^9, m \le 2000\)\(50\) 組資料。

打表找規律,注意到最終總會是 \(2^x\) 在迭代,因此考慮數 \(2\) 的個數。

\(f_p\)\(p\) 能貢獻的 \(2\) 的個數。

\(f_2 = 1\)\(f_p = \sum\limits_{q | (p-1)} f_q\),其中 \(q\) 為質數,且可以重複。

\(f\) 可以直接線性篩分解質因數得到,時間複雜度 \(O(n \log \log n)\)。(好好線性篩應該能做到線性)

答案即為所有 \(f_p \times q\) 之和。注意如果沒有 \(p=2\) 會多一次。

預處理 \(O(n \log \log n)\),每組資料 \(\Theta(m)\)

D LCM

洛谷原題 P1829 [國家集訓隊] Crash的數字表格 / JZPTAB

相關文章