C语言求两数最大公约数(辗转相除法)

求两个数的最大公约数

问题分析

设有a,b两个正整数,求a,b的最大公约数。

算法分析

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

例如 

a=24 b=18
24/18 = 1     余数 6
18/6 = 0      余数 0
最大公约数  6//即余数为零时的除数

除数和余数反复做除法运算,当余数为 0 时,取当前算式除数为最大公约数

代码实现

​
​
#include <stdio.h>
int main()
{
	int a, b,c;
	scanf("%d %d", &a, &b);
        c = a % b;
	    while (c != 0)
		{
			a = b;
			b = c;
			c = a % b;
		}
		printf("%d", b);
	}
	return 0;
}

​

​

注意事项

可能有人会问是否需要判断两数的大小关系

答案为不用

如果a<b

a<b
a%b = 0   a
将变成
b%a

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-26 17:46:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-26 17:46:01       101 阅读
  3. 在Django里面运行非项目文件

    2024-01-26 17:46:01       82 阅读
  4. Python语言-面向对象

    2024-01-26 17:46:01       91 阅读

热门阅读

  1. 洛谷 P1032 字串变换

    2024-01-26 17:46:01       54 阅读
  2. Vue3 Element-plust表格导出excel文件

    2024-01-26 17:46:01       56 阅读
  3. 数据结构-二叉树

    2024-01-26 17:46:01       41 阅读
  4. 数据结构-队列

    2024-01-26 17:46:01       50 阅读
  5. C语言-算法-数论基础

    2024-01-26 17:46:01       55 阅读
  6. Spring Boot 访问数据库——JdbcTemplate

    2024-01-26 17:46:01       44 阅读
  7. Python中的面向对象编程

    2024-01-26 17:46:01       57 阅读
  8. 免费分享Deepl和google谷歌翻译api接口

    2024-01-26 17:46:01       55 阅读
  9. C++求逆元、分数取模

    2024-01-26 17:46:01       47 阅读
  10. 牛客周赛 Round 29(A B C D E)

    2024-01-26 17:46:01       52 阅读
  11. 【Digester解析XML文件的三种方式】

    2024-01-26 17:46:01       45 阅读
  12. uniapp map自定义气泡窗

    2024-01-26 17:46:01       57 阅读
  13. glog使用方法

    2024-01-26 17:46:01       65 阅读