問題概略
25 桁の自然数 を のように 2 つの自然数 , の積に分解します。 は 13 桁で は 12 桁です。 を求めてください。
解説の pdf も作りました。きれいなレイアウトで読みたい方はこちらをどうぞ。
mathematicaで素因数分解
まずは mathematica で素因数分解しました。
In[]:= AbsoluteTiming[ n = 1010101010101010101010101; lst = {#, n/#} & /@ Divisors@n; ans = Last /@ Select[lst, IntegerLength /@ # == {13, 12} &]] Out[]= {0.0008863, {909090909091, 227954249927}}
の約数 は全部で 個。 がそれぞれ 13 桁,12 桁になる組を探しました。
In[]:= AbsoluteTiming[ n = 1010101010101010101010101; lst = {#, n/#} & /@ Divisors@n; ans = Last /@ Select[lst, IntegerLength /@ # == {13, 12} &]] Out[]= {0.0008863, {909090909091, 227954249927}}
条件をみたす は 2 つあります。太字の数が です。
多項式の因数分解
手計算で解くなら とおいて因数分解でしょう。 は の 24 次式になります。
\begin{align*}
n&=1+x^2+x^4+\cdots+x^{24}=1\cdot \frac{(x^2)^{13}-1}{x^2-1}=\frac{(x^{13})^2-1}{x^2-1}\\
&=\frac{(x^{13}-1)(x^{13}+1)}{(x-1)(x+1)}\\
&=(x^{12}+x^{11}+\cdots+x+1)(x^{12}-x^{11}+\cdots-x+1)
\end{align*}
を代入すると になります。
もう一つの を手計算で導くには 32 個の をシラミツブシするしかなさそうですが,どうなんでしょうか?