题目描述
输入两个正整数,输出其最大公约数和最小公倍数。
输入
输入两个正整数n和m(n,m<=1000000)。输入保证最终结果在int范围内。
输出
输出两个整数,用空格隔开。表示m和n的最大公约数和最小公倍数。
样例输入
4 6
样例输出
2 12
提示
注意运算过程中的溢出问题
代码示例
注意:
System.out.print(num_max+" "+m/num_maxn);
上面这行代码不可以写成如下:
System.out.print(num_max+" "+mn/num_max);
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int m = sc.nextInt();
int n = sc.nextInt();
int num_min = n;
int num_max = m;
int result = 1;
if(n > m){
num_min = m;
num_max = n;
}
while(num_min != 0){
result = num_max % num_min;
num_max = num_min;
num_min = result;
}
System.out.print(num_max+" "+m/num_max*n);
}
}
注意:
System.out.print(num_max+" "+m/num_maxn);
上面这行代码不可以写成如下:
System.out.print(num_max+" "+mn/num_max);