首页 > 其他分享 >数论学习笔记 (3):因数与倍数

数论学习笔记 (3):因数与倍数

时间:2024-04-30 12:44:58浏览次数:32  
标签:gcd 数论 text ll 笔记 因数 lcm 公因数

\(\texttt{godmoo}\text{ }\texttt{の}\text{ }\texttt{数论学习笔记 之}\text{ }\boxed{因数与倍数}\)

定义

  • 因数/约数,倍数:若 \(d \mid n\),则 \(d\) 是 \(n\) 的因数,\(n\) 是 \(d\) 的倍数。

  • 公因数/公约数,公倍数:公共的因数/约数、倍数。

  • 最大公因(约)数:\(GreatestCommonDivisor(gcd)\),最大的公因数,规定 \(gcd(0,a)=a\)。

  • 最小公倍数:\(LeatestCommonMultiple(lcm)\),最小的公倍数。

\(eg.\text{ }gcd(24,18)=6,lcm(24,18)=72\)

性质

  • 唯一分解定理:任意大于 \(1\) 的整数都可以写成有限个质数乘积的形式,即:
    \(n=\prod_{i=1}^m p_i^{c_i}\)
  • \(gcd\) 和 \(lcm\) 的最值表示法:若有 \(x=\prod_{i=1}^m p_i^{a_i}\),\(y=\prod_{i=1}^m p_i^{b_i}\),则有:

\[gcd=\prod_{i=1}^m p_i^{min(a_i,b_i)} \]

\[lcm=\prod_{i=1}^m p_i^{max(a_i,b_i)} \]

正确性:由定义推出。

  • \(gcd\) 与 \(lcm\) 的性质:\(x \times y=gcd \times lcm\)

正确性:由 \(gcd\) 和 \(lcm\) 的最值表示法推出。

\(\bold{gcd}\) 求法

  • 分解质因数:分解后用 \(gcd\) 的最值表示法,\(O(\sqrt{n})\)
  • 欧几里得算法:又名辗转相除法,\(gcd(a,b)=gcd(b,a\text{ }mod\text{ }b)\)

证明
记 \(g=gcd(a,b)\)
\(\large\text{Part1.}\) 证明是公因数
首先 \(g\) 是 \(a\),\(b\) 的因数;
我们知道,\(a\text{ }mod\text{ }b=a-\lfloor\frac{a}{b}\rfloor b\) ;
那么 \(g\) 也是这个式子的因数;
所以 \(g\) 是 \(b\) 和 \(a\text{ }mod \text{ }b\) 的公因数。
\(\large\text{Part2.}\) 证明是最大公因数
假设存在更大的公因数 \(k\);
则 \(k \mid b\) 且 \(k \mid a-\lfloor\frac{a}{b}\rfloor b\);
于是 \(k \mid b\) 且 \(k \mid a\);
此时,\(k\) 是 \(a\) 和 \(b\) 的公因数;
又 \(k \gt g\),与 \(g=gcd(a,b)\) 矛盾;
所以 \(g=gcd(b,a\text{ }mod\text{ }b)\)。

ll gcd(ll x,ll y){
	if(!y) return x;
	return gcd(y,x%y);
}

也可以写成:

ll gcd(ll x,ll y){return y?gcd(y,x%y):x;}
  • 更相减损术:\(gcd(a,b)=gcd(b,a-b)\)

证明:与辗转相除法的类似,不证。

  • \(\bm{Stein}\) 算法:

针对大数据时,取模运算的性能会很低,使得辗转相除法的效率不佳;但更相减损术的效率又不高,每次只能减一此。于是,\(Stein\) 算法横空出世,它避免了取模运算,但实测下来,它在大数据下的表现略胜一筹。
思想:\(Stein\) 算法基于更相减损术,由于计算机是以 \(2\) 进制存储的,所以位运算的效率极高,所以考虑用位移运算优化更相减损术。
流程
\(Case\text{ }1:\) 当 \(a,b\) 一奇一偶时,
偶数除以 \(2\),显然不影响结果;
\(Case\text{ }2:\) 当 \(a,b\) 都是偶数时,
答案为 \(2\text{ }gcd(\frac{a}{2},\frac{b}{2})\);
\(Case\text{ }3:\) 当 \(a,b\) 都是奇数时,
无法优化,直接做更相减损术;
\(【性质】:\text{ }\)\(Case\text{ }3\) 后必为 \(Case\text{ }1\),效率得到保证。

ll stein(ll x,ll y){
	if(x<y) x^=y,y^=x,x^=y; // swap的黑科技
	if(!y) return x;
	if(!(x&1)&&!(y&1)) return stein(x>>1,y>>1)<<1;
	if(!(x&1)&&(y&1)) return stein(x>>1,y);
	if((x&1)&&!(y&1)) return stein(x,y>>1);
	return stein(y,x-y);
}

标签:gcd,数论,text,ll,笔记,因数,lcm,公因数
From: https://www.cnblogs.com/godmoo/p/18167824

相关文章

  • 【论文笔记-50~】多语言关系抽取
    ~20111.Across-lingualannotationprojectionapproachforrelationdetection摘要:尽管在过去十年中对关系提取进行了广泛的研究,基于监督学习的统计系统仍然受限,因为它们需要大量的训练数据才能达到高性能。在本文中,我们开发了一种跨语言注释投影方法,该方法利用平行语料库来......
  • Python 学习笔记
    1、Python简介设计哲学:强调代码的可读性和简洁的语法(尤其是用空格缩进来定义代码块,而不是使用大括号或关键词)。应用领域:Web开发、数据科学、人工智能、科学计算、自动化脚本等。参考文档:Python简介2.基本语法解释器:Python代码可以通过Python解释器直接运行,也可以作为脚本......
  • Living-Dream 系列笔记 第55期
    状压dp空间优化技巧:滚动数组提前预处理出有效状态T1典题限时返场。上次讲的时候的代码用到了滚动数组,这次讲第二种优化。其实很简单,就是在dp前将所有状态枚举一遍,将同行冲突的判掉,合法的用\(st_i\)存储即可。方法很bf,但经试验可以发现一千多状态中仅有几十个......
  • ABC351E 补题笔记
    批:赛时很快想到切比雪夫后就跳进主席树里出不来了。一个很妙的题。首先分\(x+y\)的奇偶性黑白染色后黑色和白色不可达。然后对于同一个颜色的点易得\(dis=\max(|x1-x2|,|y1-y2|)\),即切比雪夫距离。这个时候就可以直接上主席树了,但太复杂不是正解。最简单的解法是:我们充分......
  • C++ 学习笔记
    ​1、基础概念C++是一种高性能的编程语言,由BjarneStroustrup在1980年代初设计,旨在为C语言添加面向对象的功能。自那时起,C++已发展成为一种支持过程性、面向对象和泛型编程的多范式语言,广泛应用于系统软件、游戏开发、驱动程序、嵌入式固件等领域。要开始使用C++,首先需要......
  • [论文笔记] A Prompt Pattern Catalog to Enhance Prompt Engineering with ChatGPT
    Introduction:一个好的prompt可以提高LLM的表现;prompt可以像软件开发一样被工程化;这篇论文的主要贡献在于提出了promptpatterns用于promptengineeringComparingsoftwarepatternswithpromptpatterns:这篇论文提出的用于构建prompt的framework可以帮助用户......
  • SQL SERVER 从入门到精通 第5版 第三篇 高级应用 第11章 触发器 读书笔记
     第11章触发器>.概述触发器是一种特殊类型的存储过程.当指定表中的数据发生变化时触发器自动生效.它与表紧密相连,可以看作表定义的一部分.触发器不能通过名称被直接调用,更不允许设置参数.在SQLSERVER中,一张表可以有多个触发器.用户可以使用INS......
  • Asp-Net-Core开发笔记:使用AOP实现动态审计日志功能
    前言#最近一直在写Go和Python,好久没写C#,重新回来写C#代码时竟有一种亲切感~说回正题。在当今这个数字化迅速发展的时代,每一个操作都可能对业务产生深远的影响,无论是对数据的简单查询,还是对系统配置的修改。在这样的背景下,审计日志不仅仅是一种遵循最佳实践的手段,更是......
  • 统一场理论公式推导和笔记——part4
    三十二,核力场的定义方程所有的场都可以通过引力场变化而得到。核力场和电磁场一样也可以用引力场的变化来表示。==》这个就非常关键了,万有引力场【简称引力场】,回忆下定义:o点在空间点p处产生的引力场A【数量为a】:a=常数乘以Δn/Δs,A=-gkΔn(R/r)/Ωr² =-gkΔnR/Ω......
  • pde复习笔记 第一章 波动方程 第三节 分离变量法
    教材谷超豪《数学物理方程》第四版,虽然我们老师用的第三版,但是除了页码对不上,习题多了一点,也似乎没有多少区别。打算开个新栏专门总结一下pde的各种计算问题,在图书馆算的手麻了,但是习题几乎都是按套路出牌,所以打算好好总结一下。齐次方程提醒:这里的边界条件是两端固定,也即......