蓝桥 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))

唯一分解定理

快速幂

相关推荐
名字不要太长 像我这样就好4 小时前
【iOS】OC源码阅读——alloc源码分析
笔记·学习·macos·ios·objective-c
xin007hoyo5 小时前
算法笔记.染色法判断二分图
数据结构·笔记·算法
大学生亨亨6 小时前
go语言八股文(五)
开发语言·笔记·golang
无敌小茶9 小时前
Linux学习笔记之动静态库
linux·笔记
DXM05219 小时前
牟乃夏《ArcGIS Engine地理信息系统开发教程》学习笔记3-地图基本操作与实战案例
开发语言·笔记·学习·arcgis·c#·ae·arcgis engine
Humbunklung11 小时前
PySide6 GUI 学习笔记——常用类及控件使用方法(常用类矩阵QRectF)
笔记·python·学习·pyqt
AAAA劝导tx13 小时前
List--链表
数据结构·c++·笔记·链表·list
愚润求学13 小时前
【Linux】进程优先级和进程切换
linux·运维·服务器·c++·笔记
愚润求学14 小时前
【专题四】前缀和(3)
开发语言·c++·笔记·leetcode·刷题·c++11
椰萝Yerosius14 小时前
铭记之日(3)——4.28
笔记