题目:输入两个正整数m和n,求其最大公约数和最小公倍数。
程序分析:利用辗除法。欧几里得算法
function gcd(a, b) while b ≠ 0 t ← b b ← a mod b a ← t return a
public class 第六题计算最小公倍数和最大公约数 { public static void main(String[] args) { System.out.println("请输入两个正整数:"); Scanner in = new Scanner(System.in); int m = in.nextInt(); int n = in.nextInt(); if(n <= 0 || m <= 0) { System.out.println("请输入正整数"); } System.out.println("最大公约数为:" + gcd(m,n)); System.out.println("最小公倍数为:" + lcm(m,n)); in.close(); } //计算最大公约数
private static int gcd(int a, int b) { int temp = 0; while(b != 0) { temp = b; b = a % b; a = temp; } return a; } //计算最小公倍数
private static int lcm(int a, int b) { return a * b / gcd(a, b); } }