程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

密碼學實驗_8_本原根計算(python 實現)

編輯:Python

文章目錄

  • 效果
  • 代碼

效果

代碼

import pandas as pd
import time
def Euler(n: int)-> list:
if(n!=1):
mul = n
res = []
factor = 2
while(n!=1):
if(n%factor==0):
n = n / factor
res.append(factor)
else:
factor += 1
func = lambda x: 1-1/x
res = list(map(func, list(set(res))))
for i in res:
mul *= i
return round(mul)
else:
return 1
def Primitive_root(n: int)-> list:
m = Euler(n)
m_lt = []
for i in range(1, m+1):
m_lt.append(i)
res = []
for a in range(1, 19):
func = lambda x: a**x%n
temp = list(map(func, m_lt))
if(len(set(temp))==m):
res.append(a)
return res
if __name__=='__main__':
n = 19
print(Primitive_root(n))

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved