【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
  • 341961

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

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

三种方法求n个数的最大公约数

/*****************************************************  File name:穷举法求最大(小)公约(倍)数  // 文件名   Auth...
  • x_i_xw
  • x_i_xw
  • 2017年03月22日 18:31
  • 1015

【ZOJ】4846 GCD Reduce(求n个数的最大公约数)

题目大意:要把一组数最终变为1。每次选择两个数,变成他们的最大公约数。 思路:一组数能够变成都是1的情况,就是这些数的最大公约数是1. 求n个数最大公约数的方法:前n-1个数的最大公约数与第n个数...
  • u013611908
  • u013611908
  • 2015年03月22日 20:30
  • 778

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

一、最大公约数     最大公因数,也称最大公约数、最大公因子,指两个或多个整数共有约数中最大的一个。a,b的最大公约数记为(a,b),同样的,a,b,c的最大公约数记为(a,b,c),多个整数的最大...
  • Landscape_
  • Landscape_
  • 2017年03月22日 22:24
  • 11646

三种方法求最大公约数(C语言版)

问题描述:用三种方法求两个的整数的最大公约数。 算法分析: 1.相减法:输入两整数a和b,(1)如果a>b,a=a-b;(2)如果a  (4)如果a!=b,则再执行(1)或(2) 程序实现如下图: ...
  • Aimee_mf
  • Aimee_mf
  • 2017年03月21日 23:20
  • 1186

FZU 1969 GCD Extreme,UESTC 1723 吴神的大脑: _数论好题(求1-n中所有数的最大公约数之和)

Problem Description Given the value of N, you will have to find the value of G. The meaning of G ...
  • duanxian0621
  • duanxian0621
  • 2012年08月09日 15:20
  • 7327

求两个数的最大公约数

  • 2013年10月01日 16:10
  • 259B
  • 下载

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

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

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

求两个数的最大公约数
  • qikaihuting
  • qikaihuting
  • 2017年04月13日 20:25
  • 3077
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【C/C++】求最大公约数的三种方法
举报原因:
原因补充:

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