26最小公倍数 lowest common multiple

题目描述

正整数A和正整数B 的最小公倍数是指 能被A和B整除的最小的正整数值,设计一个算法,求输入A和B的最小公倍数。

输入描述:输入两个正整数A和B。

输出描述:输出A和B的最小公倍数。

输入例子:

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 }

 

posted @ 2016-08-14 23:53  sunshinelym  阅读(602)  评论(0编辑  收藏  举报