博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【基本算法】求解最大公约数
阅读量:2056 次
发布时间:2019-04-28

本文共 789 字,大约阅读时间需要 2 分钟。

什么是最大公约数?

指两个或多个共有中最大的一个。

分析:

要求求出正整数m,n(m>n)的最大公约数,最大公约数的最大可能为n,最小可能为1。这样我们可以设置一个中间遍历c来循环枚举出从n开始递减到1的所有整数,在循环中检测c是否满足m%c == 0 且 n %c == 0。若满足条件,说明c是m,n的公约数。

代码实现:

/** * 计算公约数  * @author Administrator */public class Demo1 {	public static void main(String[] args) {		Scanner input = new Scanner(System.in);		System.out.println("**********计算公约数**********");		System.out.println("请输入第一个正整数m:");		long m = input.nextLong();		System.out.println("请输入人第二个正整数n:");		long n = input.nextLong();		//判断m是否大于n,如果小于则交换位置		if (m < n) {			long temp = m;			m = n;			n = temp;		}		//判断是否是公约数 : 定义c中间变量,从n到1逐渐递减,如果满足条件则输出		for (long c = n; c > 1; c--) {			//判断c是否是m,n的公约数			if (m % c == 0 && n % c == 0) {				System.out.println("(" + m + "," + n + ")最大公约数是:" + c);				break;			}		}		input.close();	}}

运行结果如下:

你可能感兴趣的文章