资源限制
内存限制:256.0MB C/C++时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s
问题描述
从键盘输入M、N(M、N取值长整范围)两个数,求它们的最小公倍数。
输入格式
输入文件只有一行,有两数被空格隔开,分别表示M、N的值。
输出格式
只有一个数,即M、N的最小公倍数。
样例输入
15 20
样例输出
60
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc= new Scanner(System.in);
int m = sc.nextInt(),n=sc.nextInt();
System.out.println(lcm(m,n));
}
public static int lcm(int x, int y) {
for (int i = 1; i < x * y; i++) {
if (i % x == 0 && i % y == 0)
return i;
}
return x * y;
}
}
最大公约数:
方法一:
//辗转相除
public static void main(String [] args){
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();
//找最大值和最小值
int max = Math.max(a,b);
int min = Math.min(a,b);
int r =max%min;//求余数,如果余数是零 , 那么min就是最大公因数。
while (r!=0){//如果不等零 执行操作
max = min;//将最小值给最大值
min=r;//将余数给最小值
r=max%min;//然后再让最大值摸除最小值 ,得余数。
}
System.out.println(a+"和"+b+"之间的最大公因数是:"+min);
}
方法二:
public static int gcd(int a ,int b ){
return b==0?a:gcd(b,a%b);
}