一、最大公约数
定义
一个既能整除 a 又能整除 b 的最大整数。
应用
求 15
与 40
的最大公约数
.
求法一:暴力枚举
起始条件:最大公约数肯定不大于Math.min(A,B)
,循环的起始条件(i=a
)很容易确定。
判断条件:相信理解最大公约数定义也不难确定(a%i==0 && b%i==0
)
public class Main {
public static void gcd0() {
int a = 15, b = 40;
for(int i = a; i >= 1; --i) {
if(a%i==0 && b%i==0) {
System.out.print(i + "、");
break; //因为是最大公约数,所以要提前退出循环 --> 5
}
}
System.out.println(gcd(15, 40));
}
算法大致思路就是,不断地缩减a
的值,直到 >= 1
求法二:递归
public static int gcd(int x, int y) {
return x == 0 ? y : gcd(y%x, x); //5
}
二、最小公倍数
两个或多个整数公有的倍数叫做它们的公倍数,其中除 0 以外最小的一个公倍数就叫做这几个整数的最小公倍数。
公式:a、b的最小公倍数 == a*b / gcb(a, b)
喜欢的话可以关注一下呢:
Hoji的CSDN(在这里随意任性地创作,一首诗、一幅画、一篇文章… 在这里你可以get到但不仅限算法、Spring, SpringBoot等后端技术、MySql,Oracle数据库探索…,其中更不乏各种框架教程、学习方法…)
CSDN博客地址:https://blog.csdn.net/qq_43539599