C语言----求两个数的最大公约数-创新互联

求两个数的大公约数 1.题目:

输入两个数a,b,求两个数的大公约数。

让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:申请域名网站空间、营销软件、网站建设、古冶网站维护、网站推广。
2.思路:

思路一

以a进行减1,再对a和b分别对a-1求余。如果求余结果都为0,则是大公约数。如果求余结果都不为0,则继续a-1再减1。不断循环,直到结果求余都为0,则这个数就是两个数的大公约数。a一定是两个数大的数。

思路二

辗转相除法,一种数学解法,顾名思义,反复的除,最终得到两数的大公约数。 首先我们来分析下定理: 定理: 两个整数 的 大公约数 等于其中 较小 的那个数 和 两数 相除余数 的 大公约数 。辗转相除法也可求最小公倍数。以a和b都是可以的,无顺序关系。

3.解题代码

思路一

#define _CRT_SECURE_NO_WARNINGS

#includeint main()
{int a = 0;
	int b = 0;
	scanf("%d%d", &a, &b);
	int min = a >b ? b :  a;
	
	while (1)
	{if (a % min == 0 && b % min == 0)
		{	printf("大公约数是: %d", min);
			break;
		}
		min--;
	}

	return 0;
}

思路二

#define _CRT_SECURE_NO_WARNINGS

#includeint main()
{int a = 0;
	int b = 0;
	int x = 0;
	scanf("%d%d", &a, &b);

	while (x=a%b)
	{a = b;
		b = x;
	}
	printf("大公约数是: %d", x);

	return 0;
}
4.提示

第一点

int min = a >b ? b :  a;
int min=0;
	if (a >b)
		min = b;
	else
		min = a;

这两种都是求两个数大的数。

第二点
方案二中,以a和b都是可以的,无顺序关系。

举一反三

试求两个数的最小公倍数,辗转相除法也可求最小公倍数,比较方便。

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧

标题名称:C语言----求两个数的最大公约数-创新互联
本文路径:https://www.cdcxhl.com/article34/ddgcpe.html

成都网站建设公司_创新互联,为您提供虚拟主机品牌网站建设网站建设网站制作商城网站全网营销推广

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

商城网站建设