C语言例4-28:求两个正整数的最大公约数。

算法分析:

  1. 输入两个正整数m和n
  2. m%n 的余数 r,然后 m=n;n=r;
  3. 当 n=0, 则m是最大公约数,算法结束;否则转至执行2,重复上述过程,直到n=0为止

代码如下:

复制代码
//求两个正整数的最大公约数。
#include<stdio.h>
int main(void)
{
	int m,n,r;
	printf("输入两个正整数: \n");
	scanf("%d,%d",&m,&n);
	
	while(n)
	{
		r=m%n;
		m=n;
		n=r;
	}
	printf("这两个正整数的最大公约数是: %d\n",m);
	
	return 0;
}

结果如下:

**辗转相除法:**是求两个自然数的最大公约数的一种方法,也叫欧几里德算法。

例如,求(319,377):

∵ 319÷377=0(余319)

∴(319,377)=(377,319);

∵ 377÷319=1(余58)

∴(377,319)=(319,58);

∵ 319÷58=5(余29)

∴ (319,58)=(58,29);

∵ 58÷29=2(余0)

∴ (58,29)= 29;

∴ (319,377)=29。

可以写成右边的格式。

用辗转相除法求几个数的最大公约数,可以先求出其中任意两个数的最大公约数,再求这个最大公约数与第三个数的最大公约数,依次求下去,直到最后一个数为止。最后所得的那个最大公约数,就是所有这些数的最大公约数。

相关推荐
yiqiefeimeng31 分钟前
C语言指针难倒90%人?买房比喻让你瞬间开窍
c语言·学习·编程·指针·比喻
Littlehero_1211 小时前
QT自定义控件之热换站系统(源码开源)
开发语言·qt
meilindehuzi_a1 小时前
Python 基础语法(1):常量、变量、类型、输入输出与运算符
开发语言·python
caimouse1 小时前
ReactOS 窗口系统分析(5):可见区域与窗口 DC — vis.c + windc.c
c语言·开发语言
OPEN-F1 小时前
Python进阶教程:装饰器与生成器深入
开发语言·python
千里码aicood2 小时前
基于Python的电商数据采集系统(大数据+爬虫)
开发语言·python
_Narcissus_3 小时前
动态规划初探(含完整代码实现)
c语言·数据结构·c++·算法·动态规划·背包问题·最短路径
福大大架构师每日一题3 小时前
ragflow v0.27.0 发布:Go 后端全面对齐、智能体搜索与知识编译大升级,超全更新解析
开发语言·后端·golang
陈皮波比茶3 小时前
Python项目实战-网络机器人(爬虫)
开发语言·网络·爬虫·python·机器人
Cerman3 小时前
QEMU启动OVMF shell超时分析
c语言·windows·经验分享