以上より示された。
==予想: 「飛び」ごとに素微分友愛数は高々有限個しか存在しない\( a > 1 \)を定数とする。\( N = p_n# M \)、ただし\( M \)の最大素因数は\( p_{an} \)以下、と表されるような\( N \)のうち、素微分友愛数\( a \)ごとに有限個しかない== 成り立つか怪しい
===補題===
$$ \log(\log(x+y)) < \log(\log(x) + \frac{y}{x}) < \log(\log(x)) + \frac{y}{x\log{x}} $$
===定義=補題3====
無平方数\( n \)の最大の素因数を\( p_m \)とし、\( n \)の素因数の個数を\( k \)とするとき、\( n \)の「飛び」を\( m - k geq 3 \)と定義する。とする
直感的には、最大の素因数までで「飛ばされた」素因数の個数である。\( \begin{align*}& \sum_{k=1}^{n} \frac{1}{p_k} \\たとえば、素数階乗の飛びは0であり、2×5×13の飛びは3である。=& \frac{1}{2} + \frac{1}{3} + \sum_{k=3}^{n} \frac{1}{p_k} \\<& \frac{1}{2} + \frac{1}{3} + \sum_{k=3}^{n} \frac{1}{k\log{k}} \\<& \frac{1}{2} + \frac{1}{3} + \sum_{k=3}^{n} \int_{k-1}^k \frac{1}{x\log{x}} dx \\=& \frac{1}{2} + \frac{1}{3} + \sum_{k=3}^{n} (\log{\log{k}} - \log{\log{(k-1)}}) \\=& \frac{1}{2} + \frac{1}{3} + \log{\log{n}} - \log{\log{2}} \\<& \log{\log{n}} + 1.2\end{align*} \)
===証明===
飛びを\( a \)とし、これを固定する。また、\( N \)を飛びが\( a \)であるような無平方数とする 任意の正の数\( \varepsilon \)に対し、\( n > m \)ならば\( 2(n+a)\log{(n+a)} < n^{1+\varepsilon} \)となるような\( m \)が存在するので このような最小の自然数\( m \)を\( L_1 \)と書くことにする \( L_1 \)は\( \varepsilon \)と\( a \)に依存することに注意せよ 以下、\( n \geq L_1 \)とする \( N \)に含まれる素因数が\( n \)個であるとする このとき、\( N \)の最大の素因数は\( p_{n+a} \)であるから $$ N' < \frac{1}{2} \cdot (2(n+a) \log{(n+a)})^n \cdot n < \frac{1}{2} n^{n(1+\varepsilon)+1} < n^{n(1+\varepsilon)+1} $$ であるから、\( N' \)は\( p_{n+a} \)以降の素因数を最大でも\( n(1+\varepsilon)+1 \)個しか持たない よって\( N' \)の素因数の逆数の総和を\( T \)とすると $$ \sum_{k=1}^{n+a} \frac{1}{p_n} < \frac{1}{2} + \frac{1}{3} + \log{\log{(n+a)}} - \log{\log{2}} < \log{\log{(n+a)}} + 1.2 < \frac{a}{n\log{n}} + 1.2 $$ であるから <font size="6">これ以下書き直し。定理自体はたぶんあってる</font> \( 0 < T < \log{\log{(n+a)}} + 1.2 + \frac{n(1+\varepsilon)+1}{n\log{n}} \leq \frac{1+\varepsilon+\frac{1}{L_1}}{\log{n}} + \frac{a}{n\log{n}} + 1.2 \) が成り立つ <font color="#FF0000">+1.2が厄介だ。1/lognオーダーになることを示そうとしているのに定数が出てくるのはまずい</font> また\( N \)の素因数の逆数の総和を\( S \)とすると $$ 0 < S < \sum_{k=1}^{L_1}\frac{1}{p_k} - \log{\log{L_1}} + \log{\log{(n+a)}}$$ が成り立つ $$ f(x) = \left( \frac{1+\varepsilon+\frac{1}{L_1}}{\log{x}} \right) \left( 1.2 + \sum_{k=1}^{L_1}\frac{1}{p_k} - \log{\log{L_1}} + 2\log{\log{x}} + \frac{2a}{L_1\log{L_1}} \right) $$ とし、 $$ A = 1+\varepsilon+\frac{1}{L_1}, B = 1.2 + \sum_{k=1}^{L_1}\frac{1}{p_k} - \log{\log{L_1}} + \frac{2a}{L_1\log{L_1}}$$ とすると $$ \frac{d}{dx}f(x) = - \frac{A(B-2+2\log{\log{x}})}{x(\log{x})^2} $$ であるから、\( L_2 = \mathrm{ceil}(e^{e^{2-B}}) \)とすると \( x \geq L_2 \)であれば\( f(x) \)は単調減少である また、\( \lim_{n \rightarrow \infty} f(n) = 0 \)なので、ある\( L_3 \)が存在して\( x \geq L_3 \Rightarrow f(x) < 1 \)が成り立つ。 よって、\( n \geq \max(L_2,L_3) \)のとき、\( N \)は素微分友愛数ではない。 ===数値計算のために=== \( a \)を固定し、\( \varepsilon \)を増やすと、\( L_1 \)と\( L_2 \)は増加し、\( L_3 \)は減少する。上記の定理から、\( x < \max(L_1, L_2, L_3) \)のときだけを調べればよい。よって、\( \max(L_1, L_2, L_3)) \)が最小となるように\( \varepsilon \)を取れば最適にできる。 <font size="6">これ以下書き直し。定理の主張には影響しない</font> ====Pythonのコード====aの値は1個ずつにしないとPaizaがタイムアウトするので注意 <pre># coding: utf-8# Your code here!としてよい
from scipy.special import lambertwimport numpy as np\( p_n# < (2n \log{n})^n, N < (2an \log{an})^{an} \)であるから
def f1\(x, \begin{align*}& N' \\<& \frac{1}{2} \cdot (2an \log{an})^{an} \cdot (an) \\=& \frac{1}{2} \cdot 2^{an} \cdot (an)^{an} \cdot (\log{a, e}+\log{n}):^{an} \cdot an \\ return <& n^{(an-1)\log_n{2 * } + an(x 1+ \log_n{a}) * np.+ an(\log_n(\log{a}+\log{n})) + (1 + \log_n{a})} \\<& n^{(floatan-1) + 2an + an(\log_n(2\log{n})) + 2} \\<& n^{(xan-1)+ 2an + an + 2} \\=& n^{4an+1} \\\end{align*} \)
def f2であるから$ N' \)の素因数の個数は\(x, a, e4an \): return x ** 個以下である。また、\(N' \)の素因数は全て\( p_{n+1 + e} \)以上であるから、\( N' \)の素因数の逆数の総和を\( T \)とすると、
def f3(x, a, b, e): return (a / np.$$ T < \frac{4an+1}{n\log(float(x))) * (b {n}} = \frac{4a + np.\frac{1}{n}}{\log(np.log(float(x + e)))){n}}$$
def getlsである。また、\(a, eN \): l1 = 0 if a > 0: l1bottom = 10 l1top = 20 # e^eより大きい値をセットする while f1の素因数の逆数の総和を\(l1top, a, eS \) > f2(l1top, a, e): l1bottom *= 2 l1top *= 2 while l1top - l1bottom > 1: l1mid = (l1bottom + l1top) // 2 if f1(l1mid, a, e) > f2(l1mid, a, e): l1bottom = l1mid else: l1top = l1mid if f1(l1bottom, a, e) > f2(l1bottom, a, e): l1 = l1top else: l1 = l1bottom else: l1 = 2 capbbottom = 1 / 2 + 1 / 3 + (1 / 2 * (np.log(np.log(float(l1))) - np.log(np.log(2.0)))) - np.log(np.log(float(l1))) capbtop = 1 / 2 + 1 / 3 + (np.log(np.log(float(l1))) - np.log(np.log(2.0))) - np.log(np.log(float(l1))) l2top = int(np.exp(np.exp(1 - capbbottom))) + 1 capa = 1 + e + 1 / l1 capb = capbtopとすると、
l3bottom = l2top l3top = l3bottom \( \begin{align* 2} & S \\ while f3(l3top, capa, capb, e) > <& \sum_{k=1: l3top *= 2 while l3top - l3bottom > }^{an} \frac{1:}{p_k} \\ l3mid = (l3bottom <& \log{\log{an}} + l3top) // 1.2 if f3(l3mid, capa, capb, e\end{align*} \) > 1: l3bottom = l3mid else: l3top = l3mid if f3(l3bottom, capa, capb, e) > 1: l3 = l3top else: l3 = l3bottom return [l1, l2top, l3]
for a in range(1, 11): minl = 1000 mine = 0 minls = [] for e in np.linspace(0.1, 1.0000, 9001): ls = getls(a, e) l = max(ls[0], ls[1], ls[2]) if minl > l: minl = l mine = e minls = ls print(f"<tr><td>{a}</td><td>{mine}</td><td>{minls[0]}</td><td>{minls[1]}</td><td>{minls[2]}</td></tr>")</pre>よって
====結果====<table border="1"><tr><th>\( a S \)</th>cdot T <th>\( frac{4a + \varepsilon \)</th><th>frac{1}{n}}{\log{n}}( L_1 \)</th><th>\( L_2 log{\log{an}} + 1.2)</th><th>\( L_3 \)</th></tr><tr><td>1</td><td>0.5239</td><td>55</td><td>8</td><td>54</td></tr><tr><td>2</td><td>0.5283</td><td>55</td><td>8</td><td>55</td></tr><tr><td>3</td><td>0.5312</td><td>56</td><td>8</td><td>56</td></tr><tr><td>4</td><td>0.5338</td><td>57</td><td>8</td><td>57</td></tr><tr><td>5</td><td>0.5378</td><td>57</td><td>8</td><td>57</td></tr><tr><td>6</td><td>0.5401</td><td>58</td><td>8</td><td>58</td></tr><tr><td>7</td><td>0.5422</td><td>59</td><td>8</td><td>58</td></tr><tr><td>8</td><td>0.5459</td><td>59</td><td>8</td><td>59</td></tr><tr><td>9</td><td>0.5478</td><td>60</td><td>8</td><td>60</td></tr><tr><td>10</td><td>0.5495</td><td>61</td><td>8</td><td>60</td></tr></table>
・・・数値が非常にsusである。<s>susすぎてsus4になりそう</s>であり、これは\( \lim_{n \rightarrow \infty} \}で\( 0 \)に収束する。Q.E.D.
Desmosで確かめたところあってそうである。なんでa=0のとき30まで下げられたんだろうあとで行間を埋める