【密码学原理与实践】验证本原元元素

证明7是素数7919的一个本元元素。

这里需要用到素数分解。所以先给出分解的代码

# -*- coding: utf-8 -*-
"""
Created on Tue Jan 12 15:05:08 2021

@author: sangliping
"""

#素数只能被1和它本身整除,不能再被其它数整除,能被2整除的都不是素数
try:
    n = 0
    while True:
        n = int(input("n="))
        if n >=1:
            break
except (ValueError):
    print("请输入整数")
i = 2
frist = True
#定义为True
while n>=i:
    while n%i==0:
        if frist==True:
            #当第一次检测,为True时,
            print("=",i,end="")
            #打印=号
            frist = False
            #这时将frist置为False,否则一直是True,因为上面初始值是True
        else:
            print("*",i,end="")
            #打印*号
        n=n//i
    i += 1

测试输出:

n=7918
= 2* 37* 107

所以上面的题就变的比较简单啦
7918 =2 37107
且77918/2 mod 7919=7918 ≠1
同理 77918/37 mod 7919=755≠1
77918/107 mod 7919=5549≠1
所以Ord7919(7)=7918 即7位模7919的本原元

猜你喜欢

转载自blog.csdn.net/weixin_51656605/article/details/112528404