蓝桥 python笔记15——矩阵运算、基础数论、GCD和LCM、质数、唯一分解定理、快速幂

目录

矩阵运算

基础数论

GCD和LCM

质数

唯一分解定理

快速幂


矩阵运算

矩阵加减法:

矩阵和数相乘:

矩阵转置:

矩阵乘法:

# 矩阵乘法
def mul(A,B):
    N,M=len(A),len(A[0])#行数,列数
    _M,K=len(B),len(B[0])
    if M!=_M:
        return None
    #答案是N*K的
    C=[[0]*K for _ in range(N)]
    for i in range(N):
        for j in range(K):
            for k in range(M):
                C[i][j]+=A[i][k]*B[k][j]
    return C

# 读入矩阵
def read(A,n):
    #n代表行数
    for _ in range(n):
        A.append(list(map(int,input().split())))
# 打印矩阵
def write(A):
    for x in A:
        print(' '.join(map(str,x)))

A=[]
B=[]
N,M,K=map(int,input().split())
read(A,N)
read(B,M)
C=mul(A,B)
write(C)

基础数论

整除的传递性

因为m|(a-b)即k*m=a-b,a=k*m+b,两边同时对m求模

a % m = (k*m+b) % m,即a % m = k + b % m,记为a\equivb(mod m)

GCD和LCM

GCD和LCM的关系:

质数

def is_prime(n):
    if n<=1:
        return False
    m=int(n**0.5)
    for i in range(2,m+1):
        if x%i==0:
            return False
    return True

#疑似质数
n=int(input())
ans=0
for i in range(1,n+1):
    #逐个枚举[1,n]
    #判断数字i的数位之和是否为质数
    x=i
    cnt=0
    while x!=0:
        cnt+=x%10
        x//=10
    if is_prime(cnt):
        ans+=1
print(ans)

质数筛选:

def get_prime(n):
    #求n以内所有的质数
    #vis表示是否删除
    vis=[0]*(n+1)
    vis[0]=vis[1]=1
    #质数列表
    prime=[]
    #从小到大,找到第一个未标记的数字,就是质数
    for i in range(2,n+1):
        if vis[i]==0:
            prime.append(i)
            #从2倍的i开始,删除它是质数的可能性
            for j in range(i+i,n+1,i):
                vis[j]=1
    return prime

#打印100以内的素数
print(get_prime(100))

唯一分解定理

快速幂

  • 9
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值