【C语言】临时变量的运用2——求两个数的最大公约数

最大公约数的定义:如果数a能够被数b整除,那么a就叫做b的倍数,b就叫做a的约数。几个整数中共有的约数,就称为这几个整数的公约数。最大公约数,顾名思义就是,所有公约数中最大的哪一个数。

相关思路:在数学中比较常用的求两个数中最大公约数的算法是辗转相除法。它可以求出任意两个数的最大公约数。辗转相除法的思路是两个数不断取模求余,直到余数为0,得到最大公约数。

相关代码:

#define _CRT_SECURE_NO_DEPRECATE
#include<stdio.h>
int main()
{
	int n = 0;
	int m = 0;
	printf("请输入2个数:");
	scanf("%d %d",&n,&m);
	int max = n%m;              
	
	for (int i = 0; i < 10; i++)
	{
		if (n%m != 0)
		{
			n = m;     //定理:gcd(a,b) = gcd(b,a mod b)
			m = max;   //(n,m)=(m,max)
			           //(m,max)=(max,m % max)
		}
		else
			break;     //求余为0,得到最大公约数跳出循环
	}
    printf("%d\n",max);
	return 0;
}
运行结果图:



猜你喜欢

转载自blog.csdn.net/xiayzn/article/details/79241067
今日推荐