合成数の因数分解アルゴリズムのバリアントの1つをご紹介したいと思います。
[1]で既に述べたように、2次剰余値の分布には、素数と合成数の両方にパターンがあります。
既知の依存関係を与える必要があります[2]。 整数
A (正)が素数
aと
bの積に等しい場合、
c 2 -d 2 = Aまたは
c 2 -d 2 = nA (
nは 1〜 (A-1) 。 そうすることで、
c 2 -d 2 =(c + d)(c-d) 、つまり
(c + d)および
(c-d)は、除数
aおよび
bの倍数です。
単純化するために、図1に示す[1]のように、合成数
A = 35の残差の行列を考えます。
34 | 1 | 34 | 1 | 34 | 1 | 34 | 1 | 34 | 1 | 34 | 1 | 34 | 1 | 34 | 1 | 34 | 1 | 34 | 1 | 34 | 1 | 34 | 1 | 34 | 1 | 34 | 1 | 34 | 1 | 34 | 1 | 34 | 1 |
33 | 4 | 27 | 16 | 3 | 29日 | 12 | 11 | 13 | 9 | 17 | 1 | 33 | 4 | 27 | 16 | 3 | 29日 | 12 | 11 | 13 | 9 | 17 | 1 | 33 | 4 | 27 | 16 | 3 | 29日 | 12 | 11 | 13 | 9 |
32 | 9 | 8 | 11 | 2 | 29日 | 18 | 16 | 22 | 4 | 23 | 1 | 32 | 9 | 8 | 11 | 2 | 29日 | 18 | 16 | 22 | 4 | 23 | 1 | 32 | 9 | 8 | 11 | 2 | 29日 | 18 | 16 | 22 | 4 |
31 | 16 | 6 | 11 | 26 | 1 | 31 | 16 | 6 | 11 | 26 | 1 | 31 | 16 | 6 | 11 | 26 | 1 | 31 | 16 | 6 | 11 | 26 | 1 | 31 | 16 | 6 | 11 | 26 | 1 | 31 | 16 | 6 | 11 |
30 | 25 | 15 | 30 | 25 | 15 | 30 | 25 | 15 | 30 | 25 | 15 | 30 | 25 | 15 | 30 | 25 | 15 | 30 | 25 | 15 | 30 | 25 | 15 | 30 | 25 | 15 | 30 | 25 | 15 | 30 | 25 | 15 | 30 |
29日 | 1 | 29日 | 1 | 29日 | 1 | 29日 | 1 | 29日 | 1 | 29日 | 1 | 29日 | 1 | 29日 | 1 | 29日 | 1 | 29日 | 1 | 29日 | 1 | 29日 | 1 | 29日 | 1 | 29日 | 1 | 29日 | 1 | 29日 | 1 | 29日 | 1 |
28 | 14 | 7 | 21 | 28 | 14 | 7 | 21 | 28 | 14 | 7 | 21 | 28 | 14 | 7 | 21 | 28 | 14 | 7 | 21 | 28 | 14 | 7 | 21 | 28 | 14 | 7 | 21 | 28 | 14 | 7 | 21 | 28 | 14 |
27 | 29日 | 13 | 1 | 27 | 29日 | 13 | 1 | 27 | 29日 | 13 | 1 | 27 | 29日 | 13 | 1 | 27 | 29日 | 13 | 1 | 27 | 29日 | 13 | 1 | 27 | 29日 | 13 | 1 | 27 | 29日 | 13 | 1 | 27 | 29日 |
26 | 11 | 6 | 16 | 31 | 1 | 26 | 11 | 6 | 16 | 31 | 1 | 26 | 11 | 6 | 16 | 31 | 1 | 26 | 11 | 6 | 16 | 31 | 1 | 26 | 11 | 6 | 16 | 31 | 1 | 26 | 11 | 6 | 16 |
25 | 30 | 15 | 25 | 30 | 15 | 25 | 30 | 15 | 25 | 30 | 15 | 25 | 30 | 15 | 25 | 30 | 15 | 25 | 30 | 15 | 25 | 30 | 15 | 25 | 30 | 15 | 25 | 30 | 15 | 25 | 30 | 15 | 25 |
24 | 16 | 34 | 11 | 19 | 1 | 24 | 16 | 34 | 11 | 19 | 1 | 24 | 16 | 34 | 11 | 19 | 1 | 24 | 16 | 34 | 11 | 19 | 1 | 24 | 16 | 34 | 11 | 19 | 1 | 24 | 16 | 34 | 11 |
23 | 4 | 22 | 16 | 18 | 29日 | 2 | 11 | 8 | 9 | 32 | 1 | 23 | 4 | 22 | 16 | 18 | 29日 | 2 | 11 | 8 | 9 | 32 | 1 | 23 | 4 | 22 | 16 | 18 | 29日 | 2 | 11 | 8 | 9 |
22 | 29日 | 8 | 1 | 22 | 29日 | 8 | 1 | 22 | 29日 | 8 | 1 | 22 | 29日 | 8 | 1 | 22 | 29日 | 8 | 1 | 22 | 29日 | 8 | 1 | 22 | 29日 | 8 | 1 | 22 | 29日 | 8 | 1 | 22 | 29日 |
21 | 21 | 21 | 21 | 21 | 21 | 21 | 21 | 21 | 21 | 21 | 21 | 21 | 21 | 21 | 21 | 21 | 21 | 21 | 21 | 21 | 21 | 21 | 21 | 21 | 21 | 21 | 21 | 21 | 21 | 21 | 21 | 21 | 21 |
20 | 15 | 20 | 15 | 20 | 15 | 20 | 15 | 20 | 15 | 20 | 15 | 20 | 15 | 20 | 15 | 20 | 15 | 20 | 15 | 20 | 15 | 20 | 15 | 20 | 15 | 20 | 15 | 20 | 15 | 20 | 15 | 20 | 15 |
19 | 11 | 34 | 16 | 24 | 1 | 19 | 11 | 34 | 16 | 24 | 1 | 19 | 11 | 34 | 16 | 24 | 1 | 19 | 11 | 34 | 16 | 24 | 1 | 19 | 11 | 34 | 16 | 24 | 1 | 19 | 11 | 34 | 16 |
18 | 9 | 22 | 11 | 23 | 29日 | 32 | 16 | 8 | 4 | 2 | 1 | 18 | 9 | 22 | 11 | 23 | 29日 | 32 | 16 | 8 | 4 | 2 | 1 | 18 | 9 | 22 | 11 | 23 | 29日 | 32 | 16 | 8 | 4 |
17 | 9 | 13 | 11 | 12 | 29日 | 3 | 16 | 27 | 4 | 33 | 1 | 17 | 9 | 13 | 11 | 12 | 29日 | 3 | 16 | 27 | 4 | 33 | 1 | 17 | 9 | 13 | 11 | 12 | 29日 | 3 | 16 | 27 | 4 |
16 | 11 | 1 | 16 | 11 | 1 | 16 | 11 | 1 | 16 | 11 | 1 | 16 | 11 | 1 | 16 | 11 | 1 | 16 | 11 | 1 | 16 | 11 | 1 | 16 | 11 | 1 | 16 | 11 | 1 | 16 | 11 | 1 | 16 |
15 | 15 | 15 | 15 | 15 | 15 | 15 | 15 | 15 | 15 | 15 | 15 | 15 | 15 | 15 | 15 | 15 | 15 | 15 | 15 | 15 | 15 | 15 | 15 | 15 | 15 | 15 | 15 | 15 | 15 | 15 | 15 | 15 | 15 |
14 | 21 | 14 | 21 | 14 | 21 | 14 | 21 | 14 | 21 | 14 | 21 | 14 | 21 | 14 | 21 | 14 | 21 | 14 | 21 | 14 | 21 | 14 | 21 | 14 | 21 | 14 | 21 | 14 | 21 | 14 | 21 | 14 | 21 |
13 | 29日 | 27 | 1 | 13 | 29日 | 27 | 1 | 13 | 29日 | 27 | 1 | 13 | 29日 | 27 | 1 | 13 | 29日 | 27 | 1 | 13 | 29日 | 27 | 1 | 13 | 29日 | 27 | 1 | 13 | 29日 | 27 | 1 | 13 | 29日 |
12 | 4 | 13 | 16 | 17 | 29日 | 33 | 11 | 27 | 9 | 3 | 1 | 12 | 4 | 13 | 16 | 17 | 29日 | 33 | 11 | 27 | 9 | 3 | 1 | 12 | 4 | 13 | 16 | 17 | 29日 | 33 | 11 | 27 | 9 |
11 | 16 | 1 | 11 | 16 | 1 | 11 | 16 | 1 | 11 | 16 | 1 | 11 | 16 | 1 | 11 | 16 | 1 | 11 | 16 | 1 | 11 | 16 | 1 | 11 | 16 | 1 | 11 | 16 | 1 | 11 | 16 | 1 | 11 |
10 | 30 | 20 | 25 | 5 | 15 | 10 | 30 | 20 | 25 | 5 | 15 | 10 | 30 | 20 | 25 | 5 | 15 | 10 | 30 | 20 | 25 | 5 | 15 | 10 | 30 | 20 | 25 | 5 | 15 | 10 | 30 | 20 | 25 |
9 | 11 | 29日 | 16 | 4 | 1 | 9 | 11 | 29日 | 16 | 4 | 1 | 9 | 11 | 29日 | 16 | 4 | 1 | 9 | 11 | 29日 | 16 | 4 | 1 | 9 | 11 | 29日 | 16 | 4 | 1 | 9 | 11 | 29日 | 16 |
8 | 29日 | 22 | 1 | 8 | 29日 | 22 | 1 | 8 | 29日 | 22 | 1 | 8 | 29日 | 22 | 1 | 8 | 29日 | 22 | 1 | 8 | 29日 | 22 | 1 | 8 | 29日 | 22 | 1 | 8 | 29日 | 22 | 1 | 8 | 29日 |
7 | 14 | 28 | 21 | 7 | 14 | 28 | 21 | 7 | 14 | 28 | 21 | 7 | 14 | 28 | 21 | 7 | 14 | 28 | 21 | 7 | 14 | 28 | 21 | 7 | 14 | 28 | 21 | 7 | 14 | 28 | 21 | 7 | 14 |
6 | 1 | 6 | 1 | 6 | 1 | 6 | 1 | 6 | 1 | 6 | 1 | 6 | 1 | 6 | 1 | 6 | 1 | 6 | 1 | 6 | 1 | 6 | 1 | 6 | 1 | 6 | 1 | 6 | 1 | 6 | 1 | 6 | 1 |
5 | 25 | 20 | 30 | 10 | 15 | 5 | 25 | 20 | 30 | 10 | 15 | 5 | 25 | 20 | 30 | 10 | 15 | 5 | 25 | 20 | 30 | 10 | 15 | 5 | 25 | 20 | 30 | 10 | 15 | 5 | 25 | 20 | 30 |
4 | 16 | 29日 | 11 | 9 | 1 | 4 | 16 | 29日 | 11 | 9 | 1 | 4 | 16 | 29日 | 11 | 9 | 1 | 4 | 16 | 29日 | 11 | 9 | 1 | 4 | 16 | 29日 | 11 | 9 | 1 | 4 | 16 | 29日 | 11 |
3 | 9 | 27 | 11 | 33 | 29日 | 17 | 16 | 13 | 4 | 12 | 1 | 3 | 9 | 27 | 11 | 33 | 29日 | 17 | 16 | 13 | 4 | 12 | 1 | 3 | 9 | 27 | 11 | 33 | 29日 | 17 | 16 | 13 | 4 |
2 | 4 | 8 | 16 | 32 | 29日 | 23 | 11 | 22 | 9 | 18 | 1 | 2 | 4 | 8 | 16 | 32 | 29日 | 23 | 11 | 22 | 9 | 18 | 1 | 2 | 4 | 8 | 16 | 32 | 29日 | 23 | 11 | 22 | 9 |
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
図 1合成数A = 35の残差のマトリックス。
合成数
Aの二乗の差の性質は、いくつかの数
e 、数
Aの二次残差、および2番目の列(図1)が
Aより小さい数の完全な二乗に等しいという事実につながります
。 最初の列(図1)の数値は、
eから
eの平方根で等距離にあり、
Aの約数の倍数です
。たとえば、番号
17の場合、最初の列(図1)、二次剰余、列2は
9です。
9から平方根を抽出し、
17に加算し、
17から減算する必要があります。
(17 + 3 = 20) 、
20を
4で割った値は
5 、
(17-3 = 14) 、
14を
2で割った値は
7です。 結果の数値
20と
14は、数値
Aの約数の倍数であり、ユークリッドアルゴリズム[3]を使用して、常に数値
Aの約数を見つけることができます。 他の数値の値についても同様の結果が得られ、二次残差は完全な二乗に等しくなります。
24の場合、二次剰余は
16で、除数の倍数は
(24 +4 = 28)および
( 24-4 = 20)です。
二次残差(図1)、列2は、数値
Aの数値間隔の中央に関して対称的にグループ化されていることに注意する必要があります。 数値
(A + 1)/ 2および
(A-1)/ 2に関して、最初の列の数値間隔全体で常に4つの繰り返し値を持ちます。 数値
A = 35 (図1)の場合、これらは値
1、4、9、11、16、29です。 数値
Aの数値間隔の各半分で2次剰余の値が一致する数値は、次の法則をサポートします。 等しい二次剰余を持つ数値を互いに加算および減算すると、
Aの約数の倍数である数値が得られます。
aおよび
b16および
9 (図1)の場合、2次剰余は
11です。
16と
9を追加して
25を取得し、
25を
5で割って
5を取得します。
16から
9を引くと、
7が得られます。 見つかった値は、数値
Aの約数の倍数です
。同一の2次残差を持つ数値を見つけるために、テーブルのもう1つのプロパティを検討します(図1)。 数値間隔
Aの中央を基準と
する 、つまり 数値
(A + 1)/ 2および
(A-1)/ 2 、二次残差(図1)、列2、算術級数の値によって増加します。
17の残りの2乗を
35で割った値は
9です。
16の場合、余り11、15の場合
、余り15、14の場合
、余り21、13の場合
、余り29、12の場合
、余り
4 。
9 + 2 = 11、11 + 4 = 15、15 + 6 = 21、21 + 8 = 29、29 + 10 = 39、35で割った結果、残りは
4です。 これは、算術級数の特徴的な特性です。
同じ2次剰余をもつ列1の数は、数
A × 2nに等しい算術級数のメンバーの合計によって互いに間隔が空けられます。ここで、
nは
1から
(A-1)の範囲の値を取ります。
2nAに等しい算術級数のメンバーの合計は、算術級数のメンバーの数の数
Aの範囲全体を占有し、そのメンバーの最初または最後を使用する必要はありません。
次のように機能します。 数
A = 35、2を掛け、
35 * 2 = 70、70の平方根を抽出し、残りの
8と
6を取得します。 数字の
8に 1 を加えて
8を掛けると、
72になります。 番号
72は、進行の8番目の位置であり、
Aから
2倍、つまり
70から
2ユニット異なります。 番号
2 、これは進行の最初の位置です。
(A-1)/ 2 = 17から
8を減算する必要があります
。9を取得し、
17から
1を減算すると
16を取得します。
9と
16の場合、2次剰余(図1)は
11です。 さらに、
16 + 9 = 25、16-9 = 7です。
A = 35の約数の2の倍数
が取得されます。
その他の例
例1
2から11次、マイナス1は2047です。
2047 = 23 * 89
最初の試み。
2047 * 2 = 4094、
4094の平方根= 63、剰余125、
63 * 64 = 4032、4094未満、
64 * 65 = 4160、
4160-4094 = 66、進行のメンバーの合計の値に該当しません。
2回目の試行。
2047 * 4 = 8188、
8188の平方根= 90、余り88、
90 * 91 = 8190、
8190-8188 = 2、これは進行の最初のメンバーです。
2047-1 = 2046、
2046/2 = 1023、
1023-90 = 933、
1023-1 = 1022
1022 + 933 = 1955、
1955/85 = 23、最初の分周器、
1022-933 = 89、2番目の分周器。
例2
216527 = 293 * 739、
最初の試み。
216527 * 2 = 433054、
433054の平方根= 658、余り90、
658 * 659 = 433622、
433622-433054 = 568、進行のメンバーの合計の値に該当しません。
失敗した試行の説明をスキップします。
5回目の試行。
216527 * 10 = 2165270、
2165270の平方根= 1471、残り1429、
1471 * 1472 = 2165312、
2165312-2165270 = 42、これは進行の6番目のメンバーです。
216527-1 = 216526、
216526/2 = 108263、
108263-1471 = 106792、
108263-6 = 108257、
108257-106792 = 1465、
1465/5 = 293、最初の分周器。
108257 + 106792 = 215049、
215049/291 = 739、2番目の分周器。
文学
1.「数字の対称性」、
habrahabr.ru / post / 2180532.「フェルマーの因数分解法」。
en.wikipedia.org/wiki/ Farm_Factorizationメソッド3.「ユークリッドアルゴリズム」、
en.wikipedia.org / wiki /ユークリッドアルゴリズム