因子番号

合成数の因数分解アルゴリズムのバリアントの1つをご紹介したいと思います。



[1]で既に述べたように、2次剰余値の分布には、素数と合成数の両方にパターンがあります。



既知の依存関係を与える必要があります[2]。 整数A (正)が素数abの積に等しい場合、 c 2 -d 2 = Aまたはc 2 -d 2 = nAnは 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)204で割った値は5(17-3 = 14)142で割った値は7です。 結果の数値2014は、数値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およびb



16および9 (図1)の場合、2次剰余は11です。 169を追加して25を取得し、 255で割って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の場合余り49 + 2 = 11、11 + 4 = 15、15 + 6 = 21、21 + 8 = 29、29 + 10 = 39、35で割った結果、残りは4です。 これは、算術級数の特徴的な特性です。



同じ2次剰余をもつ列1の数は、数A × 2nに等しい算術級数のメンバーの合計によって互いに間隔が空けられます。ここで、 n1から(A-1)の範囲の値を取ります。 2nAに等しい算術級数のメンバーの合計は、算術級数のメンバーの数の数Aの範囲全体を占有し、そのメンバーの最初または最後を使用する必要はありません。



次のように機能します。 数A = 35、2を掛け、 35 * 2 = 70、70の平方根を抽出し、残りの86を取得します。 数字の8に 1 加えて8を掛けると、 72になります。 番号72は、進行の8番目の位置であり、 Aから2倍、つまり 70から2ユニット異なります。 番号2 、これは進行の最初の位置です。 (A-1)/ 2 = 17から8を減算する必要があります。9を取得し、 17から1を減算すると16を取得します。 916の場合、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 / 218053

2.「フェルマーの因数分解法」。 en.wikipedia.org/wiki/ Farm_Factorizationメソッド

3.「ユークリッドアルゴリズム」、 en.wikipedia.org / wiki /ユークリッドアルゴリズム



All Articles