公约数(也叫公因数)|公倍数 |小知识|Golang

article/2025/9/29 0:24:11

一、最大公约数(也叫公因数)

        两个数的 最大公约数 是能够被两个数整除的最大正整数。

举例: 3 和 6 的最大公约数是3。“6和3的最大公因数是3。 6的因数有1,2,3,6,3的因数有1,3。两个数的最大公约数是能够被两个数整除的最大整数。

        1071和462的最大公约数(也叫公因数)为21。

        公因数公约数只是叫法上 的区别。两个数的最小公约数为1。

如何求?

辗转相除法:

                以a=1071,b=462为例

                首先取a,b中的最大值,假设最大值为a。首先用a减去b,一直减,减到当前的a小于b了。即a = 1071-462-462 = 147 < 462。此时我们要用b来减a了,停止条件也是b小于当前的a。那么就是b - a = 462 - 147 - 147 -147 = 21 < a。 现在b = 21,a等于147。我们继续用大的减去小的, 147 - 21 .-.(7个21) - 21 = 0 。 此时这个b即为他俩的最大公约数(公因数)

        落实到编程中咋实现呢?

func gcd(a, b int) int {    // 传入两个数temp := 0    // 用来临时存放a-b的值for b != 0 {    // 终止条件是b==0temp = a % b    // a%b相当于 a一直减b,直到a小于b的时候的值a = b    // 这里为了方便一直用a%b,所以让ab的值互换了。此时的a为两个数中较大的b = temp    // b为 a%b的值}return a    // 当b==0的时候,也就是temp==0啊,那个时候被减数b就是最大公因子(公约数)
}

1979. 找出数组的最大公约数

// 1.先找出最大值和最小值
// 2.然后用辗转相除法求得最大公约数就可以了 
func findGCD(nums []int) int {min, max := nums[0], nums[0]for _, v := range nums {if v > max {max = v}if v < min {min = v}}return gcd(max, min)
}func gcd(a, b int) int {temp :=0 for b != 0 {temp = a % ba,b = b, temp}return a 
}

 2427. 公因子的数目

func commonFactors(a int, b int) int {ans := 0for i:=1;i<=1000;i++{    // 由于数据规模不大,直接遍历if a % i == 0 && b % i == 0 {  // a、b同时可以取模一个数字且余数为0,此时的i就是一个ans++}}return ans
}

二、公倍数

        公倍数(common multiple)是指在两个或两个以上的自然数中,如果它们有相同的倍数,这些倍数就是它们的公倍数。公倍数中最小的,就称为这些整数的最小公倍数(lowest common multiple)。注意:没有最大公倍数的说法。
        举例:求4和6的最小公倍数。

解答过程如下: 4=2×2,6=2×3。最小公倍数=2×2×3=12

如何求两个数的最小公倍数呢?

        我们用:(借助辗转相除法),比较方便,因为前面求公约数就用的辗转相除法,方便一起记忆。

        已知a和b两个数,最小公倍数 = (a*b)/ 最大公约数

        如:4和6的最大公约数是2,那最小公倍数就是(4*6) /  2 = 12。因为两个数的乘积等于这两个数的最大公约数与最小公倍数的乘积。

        那么转换成代码就很好写了,把上面的辗转相除法求公约数的函数写出来,然后a*b除以这个公约数就可以咯。

package mainimport "fmt"func main() {a := 4b := 6fmt.Println("4和6的最大公约数为:", gcd(a, b))fmt.Println("4和6的最小公倍数为:", 1, "两个数的最小公约数不用计算,是1 \n")// 求a和b的最小公倍数只要 a*b/它俩最大公约数  就可以了fmt.Println("4和6的最小公倍数为:", a*b/gcd(a, b))fmt.Println("4和6的最大公倍数为:", "Error:两个数没有最大公倍数(∞)")
}func gcd(a, b int) int {temp := 0for b != 0 {temp = a % ba = bb = temp}return a
}// output
4和6的最大公约数为: 2
4和6的最小公倍数为: 1 两个数的最小公约数不用计算,是1 4和6的最小公倍数为: 12
4和6的最大公倍数为: Error:两个数没有最大公倍数(∞)// 暴力做法
func main() {// 求4, 6 的最小公倍数a, b := 4, 6ans := make([]int, 0)for i := 0; i < 5; i++ {ans = append(ans, a)a += 4ans = append(ans, b)b += 6}sort.Ints(ans)for i := 0; i < len(ans)-1; i++ {if ans[i] == ans[i+1] {fmt.Println(ans[i])break}}
}

如何求三个数的最小公倍数呢?

        思路:算了暴力把。

func main() {// 求6 10 15的最小公倍数a, b, c := 6, 10, 15ans := make([]int, 0)for i := 0; i < 5; i++ {ans = append(ans, a)a += 6ans = append(ans, b)b += 10ans = append(ans, c)c += 15}sort.Ints(ans)for i := 0; i < len(ans)-1; i++ {if ans[i] == ans[i+1] {fmt.Println(ans[i])break}}
}

其它... 算了算了,遇到再说把


http://chatgpt.dhexx.cn/article/Y74iN0vA.shtml

相关文章

线性代数学习笔记——第六十九讲——正交向量组与标准正交基

1. 正交向量组的定义 2. 正交的判定 3. 正交向量组必然线性无关&#xff0c;线性无关向量组未必是正交向量组 4. 正交向量组求解示例 5. 标准正交向量组的定义

线性空间标准正交基的构造——Schmidt正交化

证明: 两两正交的一组向量必然线性无关 线性空间的标准正交基定义 (定义摘自《矩阵论》&#xff0c;程云鹏&#xff0c;1999年第2版&#xff0c;p88) 下面的定理证明了欧式空间一定存在标准正交基&#xff0c;其证明过程可以看作把任意一组基化成标准正交基的算法&#xff0…

Schmidt正交化(正交规范化方法)

设有向量α1,α2...αn&#xff0c;则正交规范化方法为 ... 其中&#xff0c;括号内是指做内积运算&#xff0c;即((x1,x2,...xn),(y1,y2...yn))x1*y1x2*y2...xn*yx 然后&#xff0c;再将每个向量单位化、 即 最后得到的一系列γ组成的向量组就正交且均为单位向量

【矩阵论笔记】Schmidt正交化、标准正交基

正交定义 正交例题 正交向量组 标准正交基 Schmidt正交化 例题

正交基函数

SH光照论文需要知道基函数&#xff08;basis functions&#xff09;知识。基函数就是小片的信号&#xff0c;可以被缩放、组合来产生原函数的近似&#xff0c;计算多少基函数需要被加到结果中的过程被称为投影&#xff08;projection&#xff09;。通过基函数估计原函数&#x…

第十章 正交基和标准正交基

10.1正交基 10.2一维投影 10.3高维投影 10.4标准正交基的性质 10.5矩阵的QR分解 10.6总结

施密特正交化

定义 施密特正交化&#xff08;Schmidt orthogonalization&#xff09;是求欧氏空间正交基的一种方法。从欧氏空间任意线性无关的向量组α1&#xff0c;α2&#xff0c;……&#xff0c;αm出发&#xff0c;求得正交向量组β1&#xff0c;β2&#xff0c;……&#xff0c;βm&…

线性代数学习之正交性,标准正交矩阵和投影

正交基和标准正交基&#xff1a; 前言&#xff1a; 经过上一次线性代数学习之向量空间&#xff0c;维度&#xff0c;和四大子空间的学习&#xff0c;对于空间的概念已经有了非常深刻的认识了&#xff0c;而描述空间很重要的方式除了维度以外&#xff0c;那就是空间的基了&…

【机器学习|数学基础】Mathematics for Machine Learning系列之矩阵理论(8):标准正交基与Gram-Schmidt过程

目录 前言往期文章2.2 标准正交基与Gram-Schmidt过程2.2.1 标准正交基定义2.4定理2.2.1定义2.5 2.2.2 求标准正交基的Schmide方法定理2.2.2举例 结语 前言 Hello&#xff01;小伙伴&#xff01; 非常感谢您阅读海轰的文章&#xff0c;倘若文中有错误的地方&#xff0c;欢迎您指…

c语言实现向量组的标准/规范正交基(施密特正交化)

问题&#xff1a;任意一个向量组求标准正交基&#xff0c;尽量用C/C。 思路&#xff1a;下面是我找的课本上面的算向量组标准正交基的方法。第一步&#xff0c;用施密特正交化方法&#xff0c;使向量组正交&#xff1b;第二步&#xff0c;将向量组各向量单位化。 代码实现&a…

正交基

规范正交基是n维欧式空间V中n个两两正交的非零单位向量组成的一个规范正交组。V中的任意向量ξ都可以由V的一组规范正交基{a1,a2,…,an}唯一表示ξx11x22…xnn,x1,x2,…,xn是ξ关于基{a1&#xff0c;a2&#xff0c;…&#xff0c;an}的坐标&#xff0c;由于{a1&#xff0c;a2&a…

线性代数(三十九) :格拉姆-施密特正交化与标准正交基

本节介绍正交的概念&#xff0c;以及将基变为正交基的格拉姆-施密特(Gram-Schmidt)方法 1 正交 如果向量x,y满足: 则称x与y正交(orthogonal)或者垂直(perpendicular),记做&#xff1a; 2 标准正交基 设X是具有欧几里得结构的有限维线性空间 是X的一组基,如果他们满足&#x…

线性代数(14)——正交性、标准正交基和投影

正交性、标准正交基和投影 正交基与标准正交基一维投影高维投影和Gram-Schmidt过程三维空间四维及以上空间实现Gram-Schmidt过程相关话题 标准正交基的性质 正交基与标准正交基 一个 n n n维空间中任何一组线性无关的向量&#xff0c;都是这个 n n n维空间的一组基。当这组基的…

线性代数中一组基向量的标准正交化原理通熟易懂理解

我们先来看图&#xff0c;看看这个方法的操作过程&#xff0c;等一下&#xff0c;我找找我的大学的线性代数课本&#xff0c;找到啦&#xff01;&#xff08;哈哈&#xff0c;虽然读研了&#xff0c;因为我是菜鸟&#xff0c;所以还是随时带着&#xff09;如下图所示&#xff1…

【机器学习】【线性代数】正交基、标准正交基、正交矩阵,正交变换等数学知识点

1.正交向量组 直接给定义&#xff1a;欧式空间V的一组非零向量&#xff0c;如果他们俩俩向量正交&#xff0c;则称是一个正交向量组。 &#xff08;1&#xff09;正交向量组 是 线性无关的 &#xff08;2&#xff09;n维欧式空间中俩俩正交的非零向量不会超过n个&#xff0c…

为什么总是标准正交基(标准直角坐标系)?

坐标系的作用是什么&#xff1f;简单的一句换就是&#xff0c;坐标系是拿来描述点的位置的。要对事物进行分析&#xff0c;无论是量化分析还是抽象分析&#xff0c;需要首先对事物有一个清晰的定义&#xff0c;这样我们才能知道我们在说什么。对事物进行定义时&#xff0c;特别…

空间的基,自然基,标准正交基

误区&#xff1a;总以为二维平面的基是垂直的x轴和y轴 总以为三维空间的基是垂直的x轴&#xff0c;y轴和z轴 解析&#xff1a; 以二维空间为例&#xff0c;不光只有垂直的两个向量才能表示整个空间。 如上图所示&#xff0c;垂直的两个向量能表示整个平面自不必多说。 下图…

标准正交基

目录 一、由内积到正交二、标准正交基三、标准正交基&#xff0c;你有什么好&#xff1f;四、由基到标准正交基 一、由内积到正交 为了说明正交&#xff0c;需要先解释一种运算——内积. 内积的概念源自内积空间&#xff0c;下文摘自我的另一篇博客 内积空间(传送门)   设 V…

标准正交基(Orthonormal)、施密特正交化(Gram-Schmidt)

标准正交基、施密特正交化 1.标准正交基&#xff08;Orthonormal&#xff09;与施密特正交化&#xff08;Gram-Schmidt&#xff09;1.1 标准正交基&#xff08;Orthonormal&#xff09;1.2 施密特正交化&#xff08;Gram-Schmidt&#xff09; 1.标准正交基&#xff08;Orthonor…

后端的setCookie无法写入浏览器的问题

知识点&#xff1a; 后端通常称为session&#xff0c;是tomacat自带的验证方式&#xff0c;前端叫cookies的存储存这个cookies&#xff0c;有时效性&#xff0c;通常是后台设置&#xff08;前端也可以设置&#xff0c;一般不&#xff09;。也就是说业务上&#xff0c;如果使用…