题目
正整数A和正整数B 的最小公倍数是指 能被A和B整除的最小的正整数值,设计一个算法,求输入A和B的最小公倍数。
//知识点 循环,位运算
//运行时间限制 10M
//内存限制 128
//输入
//输入两个正整数A和B。
//输出
//输出A和B的最小公倍数。
//样例输入 5 7
//样例输出 35
=========================================
一次通过 100分
涉及到数论的问题 需要熟悉相关数学知识
=========================================
import java.util.Scanner;
//正整数A和正整数B 的最小公倍数是指 能被A和B整除的最小的正整数值,设计一个算法,求输入A和B的最小公倍数。
//知识点 循环,位运算
//运行时间限制 10M
//内存限制 128
//输入
//输入两个正整数A和B。
//输出
//输出A和B的最小公倍数。
//样例输入 5 7
//样例输出 35
public class oj028 {
// 求最小公倍数算法:
//
// 最小公倍数=两整数的乘积÷最大公约数
//
// 求最大公约数算法:
//
// (1)辗转相除法
//
// 有两整数a和b:
//
// ① a%b得余数c
//
// ② 若c=0,则b即为两数的最大公约数
//
// ③ 若c≠0,则a=b,b=c,再回去执行①
//
// 例如求27和15的最大公约数过程为:
//
// 27÷15 余1215÷12余312÷3余0因此,3即为最大公约数
public int getMinGongBei(int a,int b)
{
return a*b/getMaxGongYue(a, b);
}
//辗转相除法求最大公约数
public int getMaxGongYue(int a,int b)
{
int c=a%b;
while(c!=0)
{
a=b;
b=c;
c=a%b;
}
return b;
}
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
int a=scanner.nextInt();
int b=scanner.nextInt();
System.out.print(new oj028().getMinGongBei(a, b));
}
}