基础数论1

文章目录

质数

质因数分解

算术基本定理:
任何一个大于 1 的正整数都能唯一分解为有限个质数的乘积,可以写作: 任何一个大于1的正整数都能唯一分解为有限个质数的乘积,可以写作: 任何一个大于1的正整数都能唯一分解为有限个质数的乘积,可以写作:
N = p 1 c 1 p 2 c 2 . . . p m c m N=p_1^{c_1}p_2^{c_2}...p_m^{c_m} N=p1c1p2c2...pmcm
其中 c i 都是正整数, p i 都是质数,且满足 p 1 < p 2 < . . . < p m 其中c_i都是正整数,p_i都是质数,且满足p_1<p_2<...<p_m 其中ci都是正整数,pi都是质数,且满足p1<p2<...<pm

int primes[N], cnt[N], m;
void divide(int n)
{rep(i,2,n/i){if(n%i==0)	primes[++m]=i;while(n%i==0){n/=i;cnt[m]++;}}if(n>1)	{primes[++m]=n;cnt[m]=1;}
}

哪个if是不是多余?
并不是的之前我感觉那个if是多余的,直接用map去存可以省掉哪个if但是用map去存复杂度就变成了 O ( l o g n ) O(logn) O(logn)

约数

g c d gcd gcd求最大公约数

g c d 求最大公约数主要用到一个定理 gcd求最大公约数主要用到一个定理 gcd求最大公约数主要用到一个定理
g c d ( a , b ) = g c d ( b , a % b ) gcd(a,b)=gcd(b,a\%b) gcd(a,b)=gcd(b,a%b)
下面证明该定理:
首先需要引入一些数论中用于证明的基本知识:
1. d ∣ a 且 d > = 0 : d 是 a 的约数 1. d|a且d>=0:\quad d是a的约数 1.dad>=0:da的约数
2. 除法定理:对于任何整数 a 和任何整数,存在唯一整数 r 和 q ,满足 0 < = r < n 2. 除法定理:对于任何整数a和任何整数,存在唯一整数r和q,满足0<=r<n 2.除法定理:对于任何整数a和任何整数,存在唯一整数rq,满足0<=r<n
a = q n + r \quad \quad \quad \quad \quad a=qn+r a=qn+r
q 为商 q = ⌈ a n ⌉ r 为余数, r = a m o d n \quad \quad \quad \quad \quad q为商q=\lceil \dfrac an \rceil \qquad r为余数,r=a \quad mod \quad n q为商q=nar为余数,r=amodn
n ∣ a 当且仅当 r = a m o d n = 0 \quad \quad \quad \quad \quad n|a当且仅当r=a \quad mod \quad n=0 na当且仅当r=amodn=0
3. d ∣ a 并且 d ∣ y ⇒ d ∣ ( a x + b y ) 并且 d ∣ g c d ( a , b ) ,因为 g c d ( a , b ) 是最大的约数 3. d|a并且d|y\Rightarrow d|(ax+by)并且d|gcd(a,b),因为gcd(a,b)是最大的约数 3.da并且dyd(ax+by)并且dgcd(a,b),因为gcd(a,b)是最大的约数
证明:
如果能证明 g c d ( a , b ) ∣ g c d ( b , a % b ) 并且 g c d ( b , a % b ) ∣ g c d ( a , b ) gcd(a,b)|gcd(b,a\%b)并且gcd(b,a\%b)|gcd(a,b) gcd(a,b)gcd(b,a%b)并且gcd(b,a%b)gcd(a,b)
那么 g c d ( a , b ) = g c d ( b , a % b ) 那么gcd(a,b)=gcd(b,a\%b) 那么gcd(a,b)=gcd(b,a%b)
令 q = g c d ( a , b ) , p = g c d ( b , a % b ) 令q=gcd(a,b), p=gcd(b,a\%b) q=gcd(a,b),p=gcd(b,a%b)
q = g c d ( a , b ) ⇒ q ∣ a 且 q ∣ b ⇒ q ∣ ( a x + b y ) q=gcd(a,b) \Rightarrow q|a且q|b \Rightarrow q|(ax+by) q=gcd(a,b)qaqbq(ax+by)
a % b = a − k b ⇒ g c d ( b , a % b ) = g c d ( b , a − k b ) ⇒ q ∣ g c d ( b , a % b ) a\%b=a-kb \Rightarrow gcd(b,a\%b)=gcd(b,a-kb) \Rightarrow q|gcd(b,a\%b) a%b=akbgcd(b,a%b)=gcd(b,akb)qgcd(b,a%b)
g c d ( a , b ) ∣ g c d ( b , a % b ) 得证 gcd(a,b)|gcd(b,a\%b)得证 gcd(a,b)gcd(b,a%b)得证
下面只需要证明 g c d ( b , a % b ) ∣ g c d ( a , b ) 即可 下面只需要证明gcd(b,a\%b)|gcd(a,b)即可 下面只需要证明gcd(b,a%b)gcd(a,b)即可
p ∣ ( x b + y ( a − k b ) ) ⇒ p ∣ ( a y + ( x − k ) b ) ⇒ p ∣ a 并且 p ∣ b p|(xb+y(a-kb)) \Rightarrow p|(ay+(x-k)b) \Rightarrow p|a并且p|b p(xb+y(akb))p(ay+(xk)b)pa并且pb
p ∣ a 并且 p ∣ b ⇒ p ∣ g c d ( a , b ) ⇒ g c d ( b , a % b ) ∣ g c d ( a , b ) p|a并且p|b \Rightarrow p|gcd(a,b) \Rightarrow gcd(b,a\%b)|gcd(a,b) pa并且pbpgcd(a,b)gcd(b,a%b)gcd(a,b)
至此 g c d ( a , b ) = g c d ( b , a % b ) 得证 至此gcd(a,b)=gcd(b,a\%b) 得证 至此gcd(a,b)=gcd(b,a%b)得证

int gcd(int a, int b)
{return b?gcd(b,a%b):a;
}

未完待续…

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/238108.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于javaWeb的長安智慧医疗管理系统设计与实现论文

長安智慧医疗管理系统 摘 要&#xff1a;如今社会上各行各业&#xff0c;都在用属于自己专用的软件来进行工作&#xff0c;互联网发展到这个时候&#xff0c;人们已经发现离不开了互联网。互联网的发展&#xff0c;离不开一些新的技术&#xff0c;而新技术的产生往往是为了解决…

Centos7在安装Graylog时新安装MongoDB报错端口不监听服务不启动无法运行启动失败

由于虚拟机服务器上需要安装Graylog需要安装MongoDB&#xff0c;尝试官网下载安装包&#xff0c;和yum安装均无法正常启动&#xff0c;折腾了好几天&#xff0c;重装了十几次&#xff0c;网上搜索了很多很多资料&#xff0c;均无法正常运行&#xff0c;百度上搜索各种文档&…

Java代码审计Mybatis注入文件上传下载读取(非常详细!!)

目录 0x00 前言 0x01 Mybatis注入审计 - 若依&#xff08;Ruoyi&#xff09;后台管理系统 4.6.0 1、项目介绍与部署 - Ruoyi 2、若依 Ruoyi - Mybatis注入 - 代码审计 3、代审常搜词 - Java SQL 注入 0x02 文件上传漏洞审计 - Inxedu && Tmall 1、项目介绍与部署…

Java智慧工地源码 SAAS智慧工地源码 智慧工地管理可视化平台源码 带移动APP

一、系统主要功能介绍 系统功能介绍&#xff1a; 【项目人员管理】 1. 项目管理&#xff1a;项目名称、施工单位名称、项目地址、项目地址、总造价、总面积、施工准可证、开工日期、计划竣工日期、项目状态等。 2. 人员信息管理&#xff1a;支持身份证及人脸信息采集&#…

MyBatis:动态 SQL 标签

MyBatis 动态 SQL 标签if 标签where 标签trim 标签choose 、when 、otherwise 标签foreach 标签附 动态 SQL 标签 MyBatis 动态 SQL 标签&#xff0c;是一组预定义的标签&#xff0c;用于构建动态的 SQL 语句&#xff0c;允许在 SQL 语句中使用条件、循环和迭代等逻辑。通过使…

JSP 和 servlet 有什么区别?

JSP 和 servlet 有什么区别&#xff1f; JavaServer Pages&#xff08;JSP&#xff09;和Servlet都是Java Web开发中的技术&#xff0c;它们有不同的角色和用途。 JSP&#xff08;JavaServer Pages&#xff09;&#xff1a; 角色&#xff1a; JSP 是一种视图技术&#xff0c…

速盾网络:sdk游戏盾有什么作用?

速盾cdn是一款非常优秀的CDN加速服务&#xff0c;它能够帮助游戏开发者们提升游戏的性能和稳定性。其中&#xff0c;速盾cdn的sdk游戏盾是其一项非常实用的功能&#xff0c;它能够为游戏提供更加稳定和快速的网络连接。 首先&#xff0c;让我们来了解一下什么是sdk游戏…

利用Matplotlib画简单的线形图

实验题目&#xff1a;简单的线形图 实验目的&#xff1a;利用Matplotlib画简单的线形图 实验环境&#xff1a;海豚大数据和人工智能实验室&#xff0c;使用的Python库 名称 版本 简介 numpy 1.16.0 线性代数 Pandas 0.25.0 数据分析 Matplotlib 3.1.0 数据可视化 …

第21课 SQL入门之使用游标

文章目录 21.1 游标21.2 使用游标21.2.1 创建游标21.2.2 使用游标21.2.3 关闭游标 这一课将讲授什么是游标&#xff0c;如何使用游标。 21.1 游标 SQL检索操作返回一组称为结果集的行&#xff0c;这组返回的行都是与SQL语句相匹配的行&#xff08;零行或多行&#xff09;。简单…

备份至关重要!如何解决iCloud的上次备份无法完成的问题

将iPhone和iPad备份到iCloud对于在设备发生故障或丢失时确保数据安全至关重要。但iOS用户有时会收到一条令人不安的消息&#xff0c;“上次备份无法完成。”下面我们来看看可能导致此问题的原因&#xff0c;如何解决此问题&#xff0c;并使你的iCloud备份再次顺利运行。 这些故…

技术分享-Jenkins

持续集成及Jenkins介绍 软件开发生命周期叫SDLC&#xff08;Software Development Life Cycle&#xff09;&#xff0c;集合了计划、开发、测试、部署过程。 在平常的开发过程中&#xff0c; 需要频繁地&#xff08;一天多次&#xff09;将代码集成到主干&#xff0c;这个叫持…

闭包 闭包理解 闭包的应用实例

闭包 形成闭包的条件&#xff1a;一个函数访问外部的变量就形成了闭包 用闭包的好处&#xff1a; (1)可以通过闭包函数形成独立实例的变量 (2)不会造成全局污染 代码调试&#xff0c;演示闭包形成过程 <script> //函数内部访问外部的变量&#xff0c;就形成了闭包functi…

Leetcode 406 根据身高重建队列

题意理解&#xff1a; people [[7,0],[4,4],[7,1],[5,0],[6,1],[5,2]] 给定一个二维数组&#xff0c;&#xff08;h,k&#xff09;h表示此人身高&#xff0c;k表示前面有几个人比他高。 我们按照每个人的h,k两个维度的需求给每个人排在合适的位置。 如&#xff1a; [5,0][7,0]…

深入浅出堆排序: 高效算法背后的原理与性能

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《linux深造日志》 《高效算法》 ⛺️生活的理想&#xff0c;就是为了理想的生活! &#x1f4cb; 前言 &#x1f308;堆排序一个基于二叉堆数据结构的排序算法&#xff0c;其稳定性和排序效率在八大排序中也…

ctfshow sql 195-200

195 堆叠注入 十六进制 if(preg_match(/ |\*|\x09|\x0a|\x0b|\x0c|\x0d|\xa0|\x00|\#|\x23|\|\"|select|union|or|and|\x26|\x7c|file|into/i, $username)){$ret[msg]用户名非法;die(json_encode($ret));}可以看到没被过滤&#xff0c;select 空格 被过滤了&#xff0c;可…

深入解析 C 语言中的神秘代码:(*(void (*)())0)();

在本文中&#xff0c;我们将深入研究一行神秘的 C 代码 (*(void (*)())0)();&#xff0c;探讨它的结构、潜在风险以及可能的应用场景&#xff0c;并通过拓展和实例让读者更容易理解。 (*(void (*)())0)(); //(void (*)() -- 函数指针类型 //把0强制转换成void(*)()函数指针类型…

制造行业定制软件解决方案——工业信息采集平台

摘要&#xff1a;针对目前企业在线检测数据信号种类繁多&#xff0c;缺乏统一监控人员和及时处置措施等问题。蓝鹏测控开发针对企业工业生产的在线数据的集中采集分析平台&#xff0c;通过该工业信息采集平台可将企业日常各种仪表设备能够得到数据进行集中分析处理存储&#xf…

VM——计算流程执行耗时

1、计算同一个流程内的耗时&#xff0c;可以直接用“耗时统计”模块&#xff1b; 2、计算多个流程的运行耗时&#xff0c;需要使用“脚本”&#xff0c;利用C#函数计算耗时 首先&#xff0c;记录起始时间&#xff0c;保存到string类型的全局变量中&#xff0c; curTmStr Dat…

C++之深拷贝和浅拷贝

目录 浅拷贝 深拷贝 赋值运算符重载的深拷贝 在学习C类和对象时我们学习了浅拷贝&#xff0c;本期我们将再次回顾浅拷贝并为大家讲述深拷贝的概念。 浅拷贝 在学习类和对象时我们学习了拷贝构造函数的概念&#xff0c;而且我们也知道&#xff0c;因为拷贝构造函数属于类的默…

Go后端开发 -- 环境搭建

Go后端开发 – 环境搭建 文章目录 Go后端开发 -- 环境搭建一、环境配置二、IDE的选择三、使用go mod构建项目1.初始化项目2.添加依赖项3.运行项目 四、环境报错1.VS Code中gopls报错 一、环境配置 Go官网下载地址&#xff1a;https://golang.org/dl/ https://go.dev/dl/ Go官方…