数論:元のルートを求めている任意の数(Pythonのコード)

除去分割最大公約数求めにより
DEF GCD(A、B)が:
    R =%のB
     (R =!0):= B
        B = R
        R =%のBの
     戻りB

オイラー機能-暴力版のサイクル
DEF オイラー(A):
    カウント = 0の
     ため、I 範囲(1 、A):
         もし GCD(I)== 1  + = 1
     リターン回数

DEF 順序(A、N-、B):
 #1    の工程bのMODの出力(A)    オーダーのN-MOD(a)の基
    P = 1
    一方、(P <= N および(B ** P%= 1! ))。
          P + = 1
     の場合のp <= N:
           リターン・P
     返す -1

原始根の任意の数を探す
DEFのprimitive_root(A)を:
    N = オイラー(A)
    プリム = []
     のために B における範囲(2 、A):
         もし順序(N、B)== N:
            prim.append(B)
    印刷(プリム)

テスト結果:

 

おすすめ

転載: www.cnblogs.com/chong-blog/p/11704414.html