26最小公倍数 lowest common multiple
题目描述
正整数A和正整数B 的最小公倍数是指 能被A和B整除的最小的正整数值,设计一个算法,求输入A和B的最小公倍数。
输入描述:输入两个正整数A和B。
输出描述:输出A和B的最小公倍数。
输入例子:
5
7
输出例子:
35
思路:两个数的最小公倍数等于两个数的乘积除以最大公约数
最大公约数:分解质因数,找出其中相同的质因数,再将它们相乘,就得到了最大公约数,如果两数的质因数中,没有一个是相同的,那么它们的最大公约数就是1
ps
第二个方法太智障了 hold
1 package huawei2; 2 /*题目描述 3 4 正整数A和正整数B 的最小公倍数是指 能被A和B整除的最小的正整数值,设计一个算法,求输入A和B的最小公倍数。 5 输入描述: 6 输入两个正整数A和B。 7 输出描述: 8 输出A和B的最小公倍数。 9 输入例子: 10 5 11 7 12 13 输出例子: 14 35 15 思路://两数最小公倍数等于两数乘积除以两数的最大公约数*/ 16 import java.util.Scanner; 17 18 public class LowestCommonMultiple { 19 20 public static void main(String[] args) { 21 22 Scanner in = new Scanner(System.in); 23 int a = in.nextInt(); 24 int b = in.nextInt(); 25 //int result = getCommon(a,b); 26 int result = getGretestCommonDivisor(a,b); 27 System.out.println(result); 28 } 29 30 private static int getGretestCommonDivisor(int a, int b) { 31 int divisor = a; 32 while(a%divisor != 0 || b%divisor!=0) 33 { 34 divisor--; 35 } 36 return divisor; 37 } 38 39 private static int getCommon(int a, int b) { 40 int num = 2; 41 if(a!=0 && b!=0 && (a>=b&&a%b==0)) 42 { 43 return a; 44 } 45 else if(a!=0 && b!=0 && (b>a&&b%a==0)) 46 { 47 return b; 48 } 49 else if(a>b && b!=0) 50 { 51 int max = a; 52 while(max%b!=0) 53 { 54 max =max + a; 55 num ++; 56 } 57 return max; 58 } 59 else if(b>a && a!=0) 60 { 61 int max = b; 62 while(max%a!=0) 63 { 64 max =max + b; 65 num ++; 66 } 67 return max; 68 } 69 else return 0 ; 70 } 71 72 }