java:输入两个正整数m和n,求其最大公约数和最小公倍数。 程序分析:利用辗除法。
1个回答
展开全部
程序运行截图:
辗除法——辗转相除法, 又名欧几里德算法(Euclidean algorithm)乃求两个正整数之最大公因子的算法。
代码:
public class Test {
public static final void main(String[] args) {
System.out.println("请输入两个正整数");
System.out.print("第一个正整数:");
Scanner scanner = new Scanner(System.in);
String one = scanner.nextLine();
int a = Integer.valueOf(one);
System.out.print("第二个正整数:");
String two = scanner.nextLine();
int b = Integer.valueOf(two);
System.out.println("a = " + a + ", b =" + b);
// 求最大公约数
// 1. a ÷ b,令temp为所得余数(0≤r<b)
// 若 temp = 0,算法结束;b 即为答案。
// 2. 互换:置 a←b,b←temp,并返回第一步。
int temp, num1 = a, num2 = b;
if (a < b) {
// 互换位置
temp = b;
b = a;
a = temp;
}
System.out.println("a = " + a + ", b =" + b);
while (b != 0) {/* 利用辗除法,直到b为0为止 */
temp = a % b;
a = b;
b = temp;
}
System.out.println("最大公约数:" + a);
// 求最小公倍数
System.out.println("最小公倍数:" + num1 * num2 / a);
}
}
追问
哇啊!你这人真nice
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询