変てこな素因数分解の方法を思いついてみた
こういう話の常として、勘違いか既出に違いないんだけど。
○○○ × △△△ ――――――――― ???? □□□□ ◎◎◎◎ ――――――――― ¥¥¥¥¥¥¥¥ ←かけ算の結果
このようなかけ算の筆算と逆の操作を行う。
例として221(=13 * 17)を素因数分解すると、以下のように。
○○ × △△ ―――――――― ??? □□□□ ―――――――― 0221
(積が3桁 → 因数は3桁と1桁 or 2桁2桁)
そして、下1桁が1となるようなかけ算を考えて、
1桁目の(○, △)の組み合わせは(3, 7), (1, 1), (7, 3), (9, 9) の4通りになる。
そしてそれぞれを1桁目の「○」と「△」に当てはめ、それによって判明する「?」と「□」にも数字を書き入れて、
2桁目についても同様に考えていき・・・再帰。
ほとんど総あたりな感じ。
でも並列処理とか分散処理とかいうのを使えば・・・どうだろう。
どうしようもない問題として、分解した結果が素数なのかどうかわからない。
ただし、素数を分解しようとしたら必ず失敗するので、それを利用して、
分解した結果に対しても同様に分解してみる必要がある。メンドクセ。
Cで書いてみたんだけどグチャグチャになって疲れてしまって諦めた。