学python的第十五天---简单数论

这篇具有很好参考价值的文章主要介绍了学python的第十五天---简单数论。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

模运算

学python的第十五天---简单数论
(ab)mod m=(a mod m)(b mod m) mod m

一、刷题统计

学python的第十五天---简单数论

a,b,n=map(int,input().split())
res=a*5+b*2
m=n//res*7
n=n%res
t=0
while n>0:
    if t<5:
        n-=a
        m+=1
    else:
        n-=b
        m+=1
print(m)

二、快速幂

学python的第十五天---简单数论

学python的第十五天---简单数论
学python的第十五天---简单数论

b,p,k=map(int,input().split())
def quick_mi(b,p,k):
  n=p
  b%=k
  ans=1
  while n:
    if n&1==1:
      ans=(ans*b)%k
    b=(b*b)%k
    n>>=1
  return ans

print(quick_mi(b,p,k))

三、RSA解密

学python的第十五天---简单数论
先用下段代码求解p、q

import math
n=1001733993063167141
k=int(math.sqrt(n))
for i in range(2,k+1):
    if n%i==0:
        print(i,n//i)
891234941 1123984201

第二步将de%((p-1)(q-1))的式子转换一下

n=1001733993063167141
d=212353
p=891234941
q=1123984201
tmp=(p-1)*(q-1)
print(tmp)
for i in range(2,n+1):
    now=i*tmp+1
    if now%d==0:
        print(now//d)
        break
1001733991047948000
823816093931522017

第三步,利用快速幂的代码求解x=c^e mod n

n=1001733993063167141
e=823816093931522017
c=20190324
def fastpow(a,b,mod):
    ans=1
    while b:
        if b&1:
            ans=ans*a%mod
        a=a*a%mod
        b>>=1
    return ans
print(fastpow(c,e,n))
579706994112328949

GCD

学python的第十五天---简单数论

def gcd(a,b):
    if b==0:
        return a
    return gcd(b,a%b)

def gcd(a,b):
    return a if b==0 else gcd(b,a%b)

from math import gcd

LCM

最小公倍数
LCM=a*b/gcd(a,b)
学python的第十五天---简单数论

def lcm(a,b):
	return a*b//gcd(a,b)

四、核桃的数量(最小公倍数)

学python的第十五天---简单数论
这道题就是求a,b,c的最小公倍数

from math import *

def lcm(a,b):
    return a*b//gcd(a,b)

a,b,c=map(int,input().split())
ans=lcm(lcm(a,b),c)
print(ans)

五、Hankson 的趣味题

学python的第十五天---简单数论
通过了80%,最后一个超时了,没有找到ac的python代码,如果有,麻烦大家发在评论群一下!

import math
from math import gcd

def lcm(a,b):
    return a*b//gcd(a,b)

n=int(input())
for i in range(n):
    a0,a1,b0,b1=map(int,input().split())
    ans=0
    for x in range(1,int(math.sqrt(b1)+1)):
        if b1%x==0:
            if gcd(x,a0)==a1 and lcm(x,b0)==b1:
                ans+=1
            y=b1//x
            if x==y:continue
            if gcd(y,a0)==a1 and lcm(y,b0)==b1:
                ans+=1
    print(ans)

六、寻找整数

学python的第十五天---简单数论

学python的第十五天---简单数论
学python的第十五天---简单数论
之前看别人的写法是找规律,感觉很复杂,但是感觉就是一直寻找他们的最小公倍数,然后累计步长很巧妙!

from math import *
mod=[0,0,1,2,1,4,5,4,1,2,9,0,5,10,11,14,9,0,11,18,9,11,11,15,17,9,23,20,25,16,29,27,25,11,17,4,29,22,37,23,9,1,11,11,33,29,15,5,41,46]
ans=2+mod[2]
k=2
for i in range(3,50):
    while True:
        if ans%i==mod[i]:
            k=lcm(k,int(i))
            break
        else:ans+=k#一直加他们的最小公倍数,一直到满足符合是其倍数
print(ans)
print(2022040920220409)

素数

学python的第十五天---简单数论
学python的第十五天---简单数论

七、笨小孩

学python的第十五天---简单数论

import math
def check(u):
    if u<=1:
        return False
    for i in range(2,int(math.sqrt(u))+1):
        if u%i==0:
            return False
    return True

letter=[0]*26
s=input()
for i in range(len(s)):
    if "A"<=s[i]<"Z":
        letter[ord(s[i]) - ord('A')] += 1
    else:letter[ord(s[i])-ord('a')]+=1
letter.sort()
maxx=letter[-1]
for i in letter:
    if i==0:
        continue
    minn=i
    break
# print(maxx,minn)
if check(maxx-minn):
    print("Lucky Word")
    print(maxx-minn)
else:
    print("No Answer")
    print("0")

八、质数

学python的第十五天---简单数论

N=10**6
primes=[]
bprime=[False]*N

def getPrimes(n):
    global primes
    global cnt
    bprime[0]=True
    bprime[1]=True
    for i in range(2,n+1):
        if not bprime[i]:
            primes.append(i)
            cnt+=1
            for j in range(i*2,n+1,i):
                bprime[j]=True

n=int(input())
cnt=0
getPrimes(n-1)

for p in primes:
    print(p,end=' ')
print()
print(cnt)

九、分解质因数

学python的第十五天---简单数论文章来源地址https://www.toymoban.com/news/detail-407049.html

到了这里,关于学python的第十五天---简单数论的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Spring的第十二阶段(01):Spring实现AOP的简单使用

    需要导入工程的jar包 Spring的核心包 @PointCut切入点表达式语法格式是: execution(访问权限 返回值类型 方法全限定名(参数类型列表)) 在Spring中,可以对有接口的对象和无接口的对象分别进行代理。在使用上有些细微的差别。 如果被代理的对象实现了接口。在获取对象的时候,

    2024年02月03日
    浏览(39)
  • 第十五届蓝桥杯模拟赛(第一期)Python

    创作不易,欢迎小伙伴们关注、点赞+收藏! 问题描述 请找到一个大于 2022 的最小数,这个数转换成十六进制之后,所有的数位(不含前导 0)都为字母(A 到 F)。 请将这个数的十进制形式作为答案提交。 答案提交 这是一道结果填空的题,你只需要算出结果后提交即可。本

    2024年02月05日
    浏览(64)
  • 第十五届吉林省赛个人题解【中档题(不过可能对你来说是简单题)】(H、G、C)

    题意:给你一个无向图,每条边上都有一个数码,然后给你一个路径,每次你必须从Ai走到Ai+1(直接走到,必须相邻),如果有多条路径,你等概率的选择这些路径,这样从头走到尾,你依次把这些数码写下来,得到一个十进制数,现在问你最后可以得到的期望是多少? 思路

    2024年02月03日
    浏览(36)
  • 【Python入门系列】第十五篇:Python数据可视化和图表绘制

    数据可视化是数据分析和数据科学中非常重要的一部分。通过可视化,我们可以更好地理解数据、发现数据之间的关系、展示数据的趋势和模式,并向他人传达我们的发现。 Python是一种功能强大的编程语言,拥有许多用于数据可视化的库和工具。其中,Matplotlib是最常用的绘

    2024年02月13日
    浏览(60)
  • 学C的第二十五天【指针的进阶(一)】

    ========================================================================= 相关代码gitee自取 :C语言学习日记: 加油努力 (gitee.com) =========================================================================  接上期 : 学C的第二十四天【练习】-CSDN博客  =========================================================================  

    2024年02月15日
    浏览(40)
  • 第十五届蓝桥杯模拟赛(第二期)第5题(Python)

    最难的才有挑战性,才值得学习! 小蓝有一个01矩阵。他打算将第一行第一列的 0 变为 2 。变化过程有传染性,每次 2 的上下左右四个相邻的位置中的 0 都会变成 2 。直到最后每个 2 的周围都是 1 或 2 结束。 请问,最终矩阵中有多少个 2 ? 以下是小蓝的矩阵,共 30 行 40 列。

    2024年02月04日
    浏览(42)
  • 十五天MySQL学习计划(运维篇-完结)读写分离-第十五天

    1.读写分离 ​ 读写分离,简单的说是把对数据库的读和写操作分开,以对应不同的数据库服务器。主服务器提供写操作,从数据库提供读操作,这样能有效的减轻单台数据库的压力。 ​ 通过mycat即可轻易实现上述功能,不仅可以支持mysql,也可以支持oracle和sql server。 2.一主

    2024年02月05日
    浏览(38)
  • 7-2 数论中的模幂运算

    欧拉函数法可以解决模幂运算 给定伪代码的思想

    2024年02月05日
    浏览(37)
  • 蓝桥杯刷题第二十五天

    题目描述 你有一张某海域 NxN 像素的照片,\\\".\\\"表示海洋、\\\"#\\\"表示陆地,如下所示: ....... .##.... .##.... ....##. ..####. ...###. ....... 其中\\\"上下左右\\\"四个方向上连在一起的一片陆地组成一座岛屿。例如上图就有 2 座岛屿。 由于全球变暖导致了海面上升,科学家预测未来几十年,岛

    2023年04月09日
    浏览(35)
  • 【蓝桥杯选拔赛真题59】python小写字母 第十五届青少年组蓝桥杯python 选拔赛比赛真题解析

    目录 python小写字母 一、题目要求 1、编程实现 2、输入输出

    2024年01月24日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包