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

目录

矩阵运算

基础数论

GCD和LCM

质数

唯一分解定理

快速幂


矩阵运算

矩阵加减法:

矩阵和数相乘:

矩阵转置:

矩阵乘法:

python 复制代码
# 矩阵乘法
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,记为ab(mod m)

GCD和LCM

GCD和LCM的关系:

质数

python 复制代码
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)

质数筛选:

python 复制代码
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))

唯一分解定理

快速幂

相关推荐
m0_689618282 小时前
水凝胶发生器,不对称设计妙,医电应用前景广
笔记
Ace'2 小时前
每日一题&&学习笔记
笔记·学习
挥剑决浮云 -2 小时前
Linux 之 安装软件、GCC编译器、Linux 操作系统基础
linux·服务器·c语言·c++·经验分享·笔记
新晓·故知3 小时前
<基于递归实现线索二叉树的构造及遍历算法探讨>
数据结构·经验分享·笔记·算法·链表
魔理沙偷走了BUG4 小时前
【数学分析笔记】第4章第4节 复合函数求导法则及其应用(3)
笔记·数学分析
NuyoahC5 小时前
算法笔记(十一)——优先级队列(堆)
c++·笔记·算法·优先级队列
这可就有点麻烦了6 小时前
强化学习笔记之【TD3算法】
linux·笔记·算法·机器学习
Ljubim.te8 小时前
软件设计师——数据结构
数据结构·笔记
speop10 小时前
【笔记】I/O总结王道强化视频笔记
笔记·音视频