求两个数的最小公倍数
求两个数的最小公倍数可以转换成 求两个数的绝对值乘积/两个数的最大公约数
。
设gcd(a,b)表示a,b的最大公约数。lcm(a,b)表示a,b的最小公倍数。
则存在 : lcm(a,b) * gcd(a,b) = |a*b|
转换成 : lcm(a,b) = |a*b| / gcd(a,b)
计算模板:
int gcd(int a, int b) { //求最大公约数
return b!=0?gcd(b,a%b):a;
}
int lcm = Math.abs(a,b) / gcd(a,b) //得出a,b的最小公倍数
代码实例:
输入两个数a,b。求a,b的最小公倍数
import java.util.*;
public class Main{
public static int gcd(int a,int b){ //求a,b的最大公约数
return b!=0?gcd(b,a%b):a;
}
public static void main(String[]args){
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();
int lcm = Math.abs(a*b) / gcd(a,b); //得出a,b的最小公倍数
System.out.println(lcm);
}
}
文章版权声明:除非注明,否则均为彭超的博客原创文章,转载或复制请以超链接形式并注明出处。
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。