我试图使用while循环找到两个数字的LCM。我已经搜索过,很多答案使用GCF来查找LCM,但有没有办法找到LCM而不先找到GCF?
答案 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;
}
}