CINTA第三次作业

CINTA第三次作业
1.乘法逆元

def egcd(a,b,r0=1,r1=0,s0=0,s1=1):
    if(b==0):
        return r0
    else:
        q, a, b = a//b, b, a%b
        r0, r1 = r1, (r0-q*r1)
        s0, s1 = s1, (s0-q*s1)
        return egcd(a,b,r0,r1,s0,s1)

def mul_reverse(c,m):
    c_=egcd(c,m)
    if c_<=0:
        return c_%m+m
    elif c_>0:
        return c_
    else:
        return -1 

a=eval(input())
b=eval(input())
c=mul_reverse(a,b)
print(c)

2.模指数运算

def rec_mod_exp(x, y, p):
    if(y==0):
        return 1
    
    z = rec_mod_exp(x, y//2, p)
    
    if(y&1==0): 
       return z*z %p 
    else: 
       return x*z*z %p

3.设 p = 23 和 a = 3 ,使用费尔马小定理计算a^{2019} mod p?

4 使用欧拉定理计算2^{100000} mod 55

5 7^{1000}最后两位数
手工找规律计算结果为01

©️2020 CSDN 皮肤主题: 1024 设计师:上身试试 返回首页