プライムス

大学院生の数学ノート

素因数の個数と一般化von Mangoldt関数

自然数 nに対して、nを割り切る素数 p|nの個数について考えます。

von Mangoldt関数

自然数 nに対してvon Mangoldt関数 \Lambda (n)
\begin{align}
\Lambda (n)=
\begin{cases}
\log p \quad &(n=p^k ) \\
0 \quad &(\mathrm{その他})
\end{cases}
\end{align}と定めます。ここで pは素数、kは自然数とします。いくつか具体的に計算してみると
\begin{align*}
&\Lambda (2)=\log 2 \\
&\Lambda (9)=\log 3 \\
&\Lambda (10)=0
\end{align*}というようになります。この関数は素数分布論の基礎となる関数で、たとえば素数定理は
\begin{align}
\sum_{n \le x} \Lambda (n) \sim x \quad (x\to \infty )
\end{align}と同値です。
今回は素数分布の話には触れずに冒頭の素因数の個数について考えたいと思います。この観点から von Mangoldt関数を見てみると

nが二つ以上の素因数を持つ \Rightarrow \Lambda (n)=0

が成り立っています。待遇をとれば

\Lambda (n) \neq 0 \Rightarrow nの素因数は高々1つ

となるので、つまり \Lambda (n)の値から nの素因数の個数に関する情報が取り出せることがわかります。
以降、これを一般化して \Lambda_k (n)

nk+1個以上の素因数を持つ \Rightarrow \Lambda_k(n)=0  (☆)

が成り立つような関数の構成を目指します*1

リーマンのゼータ関数とvon Mangoldt関数

もう少しvon Mangoldt関数を観察して、von Mangoldt関数とリーマンゼータ関数の関係を見つけます。リーマンゼータ関数は素数に渡る積であるEuler積
\begin{align*}
\zeta (s) =\sum_{n=1}^\infty \frac{1}{n^s} = \prod_{p}(1-p^{-s})^{-1}
\end{align*}を持っています*2。両辺の対数を取れば
\begin{align*}
\log \zeta (s)= -\sum_{p} \log \Big{(}1-\frac{1}{p^s} \Big{)}
\end{align*}となりますが、 \log (1-z)のTaylor展開
\begin{align*}
\log (1-z) = - \sum_{n=1}^{\infty}\frac{z^n}{n}
\end{align*}を用いることで、さらに
\begin{align*}
\log \zeta (s) = \sum_p \sum_{n=1}^{\infty} \frac{1}{np^{ns}}
\end{align*}と書くことができます。この両辺を微分すれば、右辺を項別微分できて
\begin{align*}
\frac{\zeta'(s)}{\zeta (s)} =- \sum_{p} \sum_{n=1}^{\infty} \frac{\log p}{p^{ns}}
\end{align*}右辺の和は分母が素数 pの冪であるときに分子に \log pが現れ、それ以外は0であるようなDirichlet級数になっています。したがってvon Mangoldt関数を用いて
\begin{align}
\frac{\zeta'(s)}{\zeta (s)} =-\sum_{n=1}^{\infty}\frac{\Lambda (n)}{n^s} \label{von Mangoldt 1}
\end{align}と書き下すことができます。リーマンゼータ関数とvon Mangoldt関数をつなげることができました。
Dirichlet畳み込み積を用いれば*3
\begin{align*}
\frac{1}{\zeta (s)}=\sum_{n=1}^{\infty}\frac{\mu (n)}{n^s}, \; \zeta'(s)=-\sum_{n=1}^{\infty}\frac{\log n}{n^s}
\end{align*}であることより、\eqref{von Mangoldt 1}の両辺の係数を比較することで
\begin{align}
\Lambda (n)=\mu \ast \log (n) \label{von Mangoldt 2}
\end{align}が成り立つことがわかります。ここで \logは対数関数の定義域を自然数に制限した数論的関数とします。

一般化von Mangoldt関数

それでは\eqref{von Mangoldt 1}をモチベーションにvon Mangoldt関数を一般化を試みます。どこを一般化するかというと\eqref{von Mangoldt 1}における左辺の微分回数を一般化します。自然数kに対して\eqref{von Mangoldt 2}のときと同様に
\begin{align}
\frac{\zeta^{(k)}(s)}{\zeta (s)} = (-1)^k \sum_{n=1}^{\infty}\frac{ \mu \ast \log^k (n)}{n^s}
\end{align}と計算できます。ここで数論的関数 \log^{k}
\begin{align}
\log^k(n) = (\log n)^k \notag
\end{align}です。そこで一般化von Mangoldt関数 \Lambda_k(n)
\begin{align}
\Lambda_k(n):= \mu \ast \log^k (n)
\end{align}というように定義します。k=1のときは von Mangoldt関数に一致します。以下 \Lambda _k (n)が目標の(☆)を満たす関数であることを証明します。

補題

自然数 kに対して
\begin{align}
\Lambda_{k+1}(n) = \Lambda_k(n)\log n +\Lambda_k \ast \Lambda (n)
\end{align}が成立。

証明
\begin{align}
\Big{(}\frac{\zeta^{(k)}(s)}{\zeta (s)} \Big{)}'= \frac{\zeta^{(k+1)}(s)}{\zeta (s)}- \frac{\zeta^{(k)}(s)}{\zeta (s)} \cdot \frac{\zeta'(s)}{\zeta (s)} \label{von Mangoldt 3}
\end{align}であり、各項をDirichlet級数で表すと
\begin{align}
\Big{(}\frac{\zeta^{(k)}(s)}{\zeta (s)} \Big{)}'= (-1)^{k+1}\sum_{n=1}^{\infty} \frac{\Lambda_k(n) \log n}{n^s} \notag
\end{align}\begin{align*}
\frac{\zeta^{(k+1)}(s)}{\zeta (s)}=(-1)^{k+1}\sum_{n=1}^{\infty}\frac{\Lambda_{k+1}(n)}{n^s}
\end{align*}\begin{align*}
\frac{\zeta^{(k)}(s)}{\zeta (s)} \cdot \frac{\zeta'(s)}{\zeta (s)}=(-1)^{k+1} \sum_{n=1}^{\infty} \frac{\Lambda_k \ast \Lambda (n)}{n^s}
\end{align*}であるから\eqref{von Mangoldt 3}の両辺の係数を比較すれば所望の式が得られる。(QED)

定理

\Lambda_k (n)は(☆)を満たす。

証明 kに関する帰納法で示す。k=1のときはvon Mangoldt関数なので(☆)が成立している。以下 kで成り立つと仮定して k+1の場合を示す。自然数nk+1個より多くの素因数を持つと仮定。このとき帰納法の仮定より補題の右辺第一項は消えて
\begin{align}
\Lambda_{k+1} (n)=\Lambda_k \ast \Lambda (n) =\sum_{d|n}\Lambda_k (d)\Lambda \Big{(}\frac{n}{d}\Big{)}\label{von Mangoldt 4}
\end{align}が成立。右辺の約数に渡る和において、dの素因数が k個より多い部分は帰納法の仮定より0になるから dの素因数の個数は k個以下としてよい。しかし dの素因数の個数が k個以下なら n/dの素因数の個数は2個以上であるから、やはりこの部分の影響も0である。したがって\eqref{von Mangoldt 4}の右辺は0になり k+1のときも証明できた。以上より任意のkに対して \Lambda_k(n)は(☆)を満たす。(QED)

おわりに

高々二つの素数の積で表される数は概素数と呼ばれますが、こういうタイプの数の扱いはおそらく一般化von Mangoldt関数に帰着されるのかな。どのように扱われるのか気になっていたので楽しく計算できてすっきりしました。

*1:もちろん(☆)を満たす関数はいくらでも作れて、たとえば(☆)という命題の指示関数なども挙げられる。ここではより数論色の濃い関数の構成を目指し、特にリーマンゼータ関数と関連するような関数を構成する。

*2:以降の計算は収束性等の議論を無視して形式的に計算している。実際にここでの計算は \Re (s) >1で成立する。

*3:Dirichlet畳み込み積については数論的関数に対するDirichletの畳み込み積 - プライムスを参照。