您的位置:首页 > 移动开发 > 微信开发

Java小程序:输入两个正整数m和n,利用辗除法求其最大公约数

2016-05-24 17:15 741 查看
java:输入两个正整数m和n,求其最大公约数和最小公倍数。

程序分析:利用辗除法。

程序运行截图:



辗除法

辗转相除法
又名欧几里德算法(Euclidean
algorithm)乃求两个正整数之最大公因子的算法。它是已知最古老的算法, 其可追溯至3000年前。它首次出现于欧几里德的《几何原本》(第VII卷,命题i和ii)中,而在中国则可以追溯至东汉出现的《九章算术》

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);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: