最少使用While循环多次

时间:2016-02-25 01:25:48

标签: java

我试图使用while循环找到两个数字的LCM。我已经搜索过,很多答案使用GCF来查找LCM,但有没有办法找到LCM而不先找到GCF?

2 个答案:

答案 0 :(得分:0)

请尝试以下代码。

public class Test 
{


    static int lcm(int x, int y)
    {
        int a;
        a = (x > y) ? x : y; // a is greater number
        while(true)
        {
            if(a % x == 0 && a % y == 0)
                return a;
            ++a;
        }   
    }

    public static void main(String args[])
    {
        Scanner input = new Scanner(System.in);
        System.out.println("Enter the two numbers: ");
        int x = input.nextInt();
        int y = input.nextInt();

        System.out.println("The LCM of two numbers is: " + lcm(x, y));
        input.close();      
    }
}

答案 1 :(得分:0)

其他用户代码的更优化版本:

static int lcm(int x, int y)
{
    int a;
    a = (x > y) ? x : y; // a is the greater number
    int b = a;
    while(true)
    {
        if(a % x == 0 && a % y == 0)
            return a;
        a = a + b;
    }   
}