【C/C++】求最大公约数的三种方法

原创 2016年07月02日 20:48:47

一、最大公约数与最小公倍数

最大公约数,属于数论所探究的内容。

最大公约数可以通过下面的三种方法求出来。

最小公倍数呢,它与最大公约数的乘机为所求数之积。

 

比如求  x,y的最大公约数和最小公倍数

记住这个公式: x*y=最小公倍数*最大公约数

二、求最大公约数的三种方法

①辗转相除法

算法流程图

代码块:

int measure(int x, int y)
{	
	int z = y;
	while(x%y!=0)
	{
		z = x%y;
		x = y;
		y = z;	
	}
	return z;
}


 

运行结果:

②辗转相减法

代码块:

int measure(int a,int b)
{		
	while(a != b)
	{
		if(a>b)
		{
			a = a - b;
		}
		else 
		{
			b = b - a;
		}
	}
	return a;
}


运行结果:

③穷举法

流程图:

代码块:

int measure(int x,int y)
{
   	int temp = 0;
    for(temp = x ; ; temp-- )
    {
		if(x%temp == 0 && y%temp==0) 
	   		break; 
   	}
	return temp;
}


 

 

版权声明:本文由 皓皓松博客 创作,转载请附带链接,有问题欢迎交流。

相关文章推荐

常见算法:C语言求最小公倍数和最大公约数三种算法

最小公倍数:数论中的一种概念,两个整数公有的倍数成为他们的公倍数,其中一个最小的公倍数是他们的最小公倍数,同样地,若干个整数公有的倍数中最小的正整数称为它们的最小公倍数,维基百科:定义点击打开链接 ...
  • iwm_NeXT
  • iwm_NeXT
  • 2012年04月11日 17:22
  • 298531

求两个数的最大公约数的三种算法

从键盘输入两个整数,求着两个整数的最大公约数。 解题思路: 从键盘输入两个数,通过以下的三个方法实现求两个数的最大公约数:     辗转相除法:取两个数中最大的数做除数,较小的数做被除...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

求最大公约数的三种算法实现

#include #include using namespace std; /** * 程序功能:求最大公约数 * author: wwj * 2013/3/4 **/ //求两个数的较小值...
  • wwj_748
  • wwj_748
  • 2013年03月06日 12:07
  • 3173

C++求两个数的最大公约数

求两个数的最大公约数

C++项目参考解答-求最大公约数

课程主页在http://blog.csdn.net/sxhelijian/article/details/39152703,课程资源在云学堂“贺老师课堂”同步展示,使用的帐号请到课程主页中查看。 【项...

C++计算最大公约数(辗转相除法)

典型例题: 一.辗转相除法 例1 。求两个正数8251和6105的最大公因数。 (分析:辗转相除→余数为零→得到结果) 解:8251=6105×1+2146 显然8251与6105的最大公因...

C++算法 - 辗转相除法(求最大公约数)

问题及代码: /* * Copyright (c) 2014, 烟台大学计算机与控制工程学院 * All rights reserved. * 文件名称:.cpp * 作 者:何小乐 * 完成...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

c语言实现求最大公约数的三种方法

一、最大公约数     最大公因数,也称最大公约数、最大公因子,指两个或多个整数共有约数中最大的一个。a,b的最大公约数记为(a,b),同样的,a,b,c的最大公约数记为(a,b,c),多个整数的最大...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【C/C++】求最大公约数的三种方法
举报原因:
原因补充:

(最多只允许输入30个字)