##### Pohlig-Hellman 法実行例 ##### 幾つまでの素数を小さいと考えますか ( 100 以上 ) : 10000 素数 p のビット数を指定してください ( 10 以上 ) : 500 素数生成中 ... 素数 p = 30297814027915108334698679113630890518815375931580425541678604955404218 51327429878051151594349544415612487207253662904483721743351710472365670400000000 01 ( 507 bits ) p-1 の素因数分解 : [[2, 55], [3, 28], [5, 10], [7, 8], [11, 5], [13, 8], [17, 4], [19, 2], [23, 3], [31, 1], [37, 1], [41, 1], [43, 1], [53, 2], [73, 2], [97, 1], [101, 1], [131, 2], [157, 1], [163, 1], [191, 1], [199, 1], [211, 1], [263, 1], [269, 1], [281, 1], [503, 1], [643, 1], [1171, 1], [1283, 1], [1367, 1], [1747, 1], [1867, 1], [2251, 1], [2371, 1], [2423, 1], [4243, 1], [6737, 1], [8147L, 1]] 原始根計算中 ... 法 p の原始根 g = 71 y = 2077591174620188461833139904246578154705663129245389200961791088156806018044 2559392064087509261817286081806203164859278062135418994503185519367645035207 離散対数 x = log_g(y) を求める Pohlig-Hellman 法開始 x mod 2^55 = 27004736245187367 x mod 3^28 = 19208988770359 x mod 5^10 = 1004642 x mod 7^8 = 1140847 x mod 11^5 = 59123 x mod 13^8 = 236979317 x mod 17^4 = 75091 x mod 19^2 = 293 x mod 23^3 = 5903 x mod 31^1 = 21 x mod 37^1 = 10 x mod 41^1 = 21 x mod 43^1 = 12 x mod 53^2 = 1146 x mod 73^2 = 3403 x mod 97^1 = 41 x mod 101^1 = 69 x mod 131^2 = 12229 x mod 157^1 = 134 x mod 163^1 = 102 x mod 191^1 = 153 x mod 199^1 = 179 x mod 211^1 = 12 x mod 263^1 = 18 x mod 269^1 = 177 x mod 281^1 = 129 x mod 503^1 = 280 x mod 643^1 = 196 x mod 1171^1 = 763 x mod 1283^1 = 1281 x mod 1367^1 = 601 x mod 1747^1 = 613 x mod 1867^1 = 1817 x mod 2251^1 = 1942 x mod 2371^1 = 1993 x mod 2423^1 = 2083 x mod 4243^1 = 2639 x mod 6737^1 = 265 x mod 8147^1 = 7370 解 x = 2891525876825708944323571942834595944324959691040255899074559142089 47308286224087597067158305224067642499360865738836669983187070265332812265882940 457767 検算 : g^x = 2077591174620188461833139904246578154705663129245389200961791088156 80601804425593920640875092618172860818062031648592780621354189945031855193676450 35207 y = 2077591174620188461833139904246578154705663129245389200961791088156 80601804425593920640875092618172860818062031648592780621354189945031855193676450 35207 計算時間 = 5.36899995804