题目描述:
输入两个正整数,输出其最大公约数和最小公倍数。
输入:
输入两个正整数n和m(n,m<=1000000)。输入保证最终结果在int范围内。
输出:
输出两个整数,用空格隔开。表示m和n的最大公约数和最小公倍数。
样例输入:
4 6
样例输出:
2 12
提示:求最大公约数我们可以用辗转相除法去计算,而最小公倍数只需要将原来的两个数相乘,再除以它俩的最大公约数即可,但是要注意如果是先乘再除会造成数据溢出的情况,所以我们在这里采用先除后乘的方法就可以避免!!!
程序代码:
import java.util.*; public class Main { public static void main(String[] args) { Scanner input=new Scanner(System.in); int a=input.nextInt(); int b=input.nextInt(); int m=a,n=b; while(b!=0) { int r=a%b; a=b; b=r; } System.out.print(a+" "); System.out.println(+(m/a)*n); } }