エントリ仕上げの数に基づいて

(間違った歓迎ギャング論文)

基本定理:

ウィルソンの定理:pは必要十分条件の素数であるP |(P-1)+ 1!

フェルマーの小定理:について素数 p及び整数、もし。(P)= 1A ^(P-1)= 1(MOD P)

オイラーの定理のための:任意の二つの互いに素な整数A、M  、A 。^ [ピー](M)= 1(MODのM) 、  Φは、オイラー関数であり、pは素数pの数よりも少ない数を表します。

オイラー関数を解きます:

1  INTオイラー(INT X)
 2  {
 3つの     int型 RES = xであり、n = X。
4      のためにint型 I = 2 ; iは<N = *; iは++ 5          た場合(N%iは== 0 6          {
 7              のRES =のRES / Iが*(I - 1 )。
8              一方、(N%のI == 0 9                  N / A = I。
10          }
 11      であれば(nは> 1 12         RES = RES / N×(N - 1 )。
13の     リターンRES。
14 }
オイラー関数値を求めて
1  空隙getEuler()
 2  {
 3      のためにint型 i = 1 ; iは<MAXN; iは++ 4          E [I] = I。
図5は、     のためにint型 I = 2、I <MAXN; iが++ 6          場合(E [I] == I)
 7              のためのint型 ; J <MAXN J + = J = I)
 8                  E [J] = E [ J] / i *が(I - 1 );
9 }
各間隔のためのふるい分けオイラー関数が必要

 

拡張オイラーの定理オイラーの定理に拡張アプリケーション!(A、M)= 1の場合は、それが大きなべき乗のために使用することができます

 <コード>

剰余定理(中国剰余定理):

フォームの式のm個の互いに素

だからMは=メートル。1 * M 2 ..mのN-M = M / M I、T I = M I MモードではI乗法逆元の感覚(に参照することができ逆数フェルマーの小定理または拡張ヨーロッパリードいくつかのアルゴリズム)、ソリューションです

=のX 1 * T 1 * M 1 + 2 * T 2 *のM 2 +··· N- * T N- * MのN- + KM、 Kは整数であり元の方程式の最小液Xのmod M

 

mが互いに素ではない場合のために、我々は解決するために組み合わされ、拡張ユークリッドペアワイズを使用する必要がある(埋め込みピット)

<コード>

 


 

素数与合数:

固有の因子分解定理:自然数X一意に分解することができ、X = P 1 R&LT 。1 P 2 R&LT 2 ... P N- R&LT N-   (Pは素数であり、rは正の整数)

Xは、すべての要素の数である:(R&LT + 1 。1)*(R&LT 1 + (1 + R&LT)... N- 

すべての要因とxの和:( Pの+。1 。1  + P 1 2 Pの+ 。1。3 ... P 1 R1)(1 + P + P 2 2   + ... + P 2 R&LT 2)...( P + 1 N -  + P N- + ... + P N- R&LT N-

Xすべての素数の要因の和:PHI(N)* N / 2、(PHI オイラー関数の、その数をn個とnおよび素数未満を表します。)

 

エマープは:全て0 <iはXを<ため、(xは<G G(I)が存在する場合はG(X)の定義は、xの数の要因である ) のXエマープ呼ばれ

エマープの自然1 :素因数2エマープから始まる連続した素数でなければなりません

トランス-2- PROPERTIES :nがエマープ、= Nの場合 P 1 R&LT 。1 P 2 R&LT 2 ... P N R&LT N 、R1> R2 => = .. RN

 

!Nの因数分解

 

その力が得られ、バック計算することができます。

 <コード>

 

エリクセンプライムふるい(NOコード)

 
1  のためのint型 I = 2 ; I <= MAXN; iが++ 2  {
 3      た場合(!VIS [i])と
 4          プライム[PCNT ++] = I。
5      のためのint型 J = 0 ; jは<PCNT && iが素数[j]を* <= MAXN; J ++ 6      {
 7          VIS [i *が素数[J] = 1 8          もし(I%プライム[j] == 0 9              ブレーク10      }
 11 }
欧拉筛素数

 

MILLER-ロビンプライムアッセイ

フェルマーの小定理:Aとの任意の整数の素数pと、もし(P)= 1の場合、P 1-  ≡1(MODのP)。代わりに、A満たすためにP-を。1  ≡1(MOD P)、Pはほぼ確実プライムなります。

擬似素数:nは正の整数であり、nは満たす正の整数がある場合は互いに素であれば、nが1 -  。≡1(MOD n)で、我々は、nはダミーに基づいて素数であると言います。数が擬似素数であれば、それはほぼ確実に素数です。

ミラーラビンテスト:これ以上N-1以下、Bイル(Sサブ)を選択していき、そこBか否かをその都度算出されるN-1  ≡1(MOD n)を素数を、nはそうでなければ係合されるたびに設定されています番号。 

 <コード>

 

ポラード・ローのファクタリング

-ギャングブログからhttps://blog.csdn.net/Sunshine_cfbsl/article/details/52512706

大きな整数nに対して、我々は、xがnの素因数の確率が小さいとされるようなxのうちのいずれかを取りますが、2個の数x1とx2はそれらの差を取ることはX1を取った場合のn-要因の確率は、増加されるだろうようなものである場合そしてX2ようGCD(ABS(X1-X2)、N)> 1つの、さらに高い確率。これは、ポラードのRho-アルゴリズムの主なアイデアです。

GCD満たす(ABS(X1-X2)を、N)> 1つのX1及びX2、GCD(ABS(X1-X2)、N)は、Nの因数である、それが素数であるかどうかを決定するだけでよい、素数であれば、次いでnが素因数、そうでなければこの再帰的プロセスです。

それはプライムMillerMiller-RabinRabinアルゴリズムを用いて決定されています。

では、どのようx1x1とx2x2それを作り続けるのですか?
X 2 Xによって[I] =(X [に対し、区間[1、N]でランダムX1うち、 I-1] * X [I-1]%N + C)%N cは任意の与えられており、外挿し値は、それが判明し、これはむしろ望ましいです。

<コード>

 

メビウス反転

(墓地)

 

原始根

(墓地)

 

 

 

おすすめ

転載: www.cnblogs.com/mooleetzi/p/11298546.html