首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C语言练习之最大公约数

前言 两个数的最大公约数是一个很基础的数学问题,今天我来和大家分享用C语言两个数的最大公约数的三种方法。...,直到余数为0,则这两个数的最大公约数为上一步的余数。...3、短除法 原理: 找出两个数的所有公约数最大的那个就是最大公约数 思路: 先找出较小数,找约数时的限制条件就是不能超过较小数的值,所有公约数最大的就是最大公约数 二、源代码以及运行截图 为了方便大家的交流和学习...%d\n", t); return 0; }   运行截图: 总结   以上就是今天要讲的内容,本文简单的介绍了用C语言两个数的最大公约数的三种方法的思路,还进一步用展示了代码的运行结果验证了作者的思路...本文的作者也只是一个正在学习C语言等编程知识的萌新,若这篇文章中有哪些不正确的内容,请在评论区向作者指出(也可以私信作者),欢迎大佬们指点,也欢迎其他正在学习C语言的萌新和作者进行交流。

37530
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    最大公约数算法_最大公约数最快方法

    比如,10和25的最大公约数5等于25除以10的余数5和10的最大公约数;再比如51和21的最大公约数3等于51除以21的余数9和21的最大公约数,而9和21的最大公约数为3。...2.2 辗转相除法的C语言实现 1 long GetGCD(long a, long b) 2 { 3 return (a % b == 0) ?...2.3 辗转相除法的缺点 辗转相除法实现时因为使用了余运算的缘故导致其在面对大整数的时候性能不够理想。我们应尽量避免使用余运算。接下来介绍另一种最大公约数求解法。...三 更相减损术 3.1 更相减损术原理 更相减损术出自《九章算术》,其原理很简单:两个正整数a和b(a > b),它们的最大公约数等于a-b的差值c和较小数b的最大公约数。...3.2 更相减损术的C语言实现 1 long GetGCD(long a, long b) 2 { 3 if (a == b) 4 return a; 5 else if

    62911

    C语言辗转相除法最大公约数_辗转相除法c++

    今天说一说C语言辗转相除法最大公约数_辗转相除法c++,希望能够帮助大家进步!!!...一、题目分析 12和18的最大公约数,一般我们会想到从1开始一直到12除1,18除1,然后再一起除2....直到找出都能除到的最大公约数,但是这样12和18我们至少要运行12次,一旦数字多了我们运行的内存和时间都会变大...我们令a=12 b=18,t=a%b 用t=12%18=12,令a=b=18,b=t=12; t=18%12=6,令a=b=12,b=t=6; t=12%6=0,a=b=6,b=t=0 当b=0时,a为最大公约数...总结: 辗转相除法,要明确终止条件,通过a和b取余,用t储存余数,再进行挪位,直到b=0, 就有最大公约数a;明确逻辑后,代码就比较简单,只需要一个循环语句就可以实现。

    1.7K10

    C语言两数最大公约数和最小公倍数

    辗转相除法又名欧几里德算法,是最大公约数的一种方法。它的具体做法是:用较大数除以较小数,再用出现的余数(第一余数)去除除数,再用出现的余数(第二余数)去除第一余数,如此反复,直到最后余数是0为止。...如果是两个数的最大公约数,那么最后的除数就是这两个数的最大公约数。...———来源:搜狗百科 核心思路 最大公约数方法:辗转相除法 最小公约数方法:(num1 x num2)÷最大公约数 例:125 15 两数的最大公约数和最小公倍数。...解:125 / 15 = 8 ······· 5 15 / 5 = 3 ······· 0 所以两数的最大公约数为5,最小公倍数为 (125 x 15) ÷ 5 = 375 C语言代码...) { t = n1 % n2; n1 = n2; n2 = t; } //辗转相除结束 //输出结果 printf("最大公约数

    3.8K20

    C语言两数最大公约数和最小公倍数

    写在前面 感谢 @杉木杉林 反馈文章《C语言两数最大公约数和最小公倍数》中的错误,如下图所示: 上图中 15 / 3 = 5 · · · · · · 0 由于笔误,3和5的位置书写错误,根据辗转相除法...辗转相除法又名欧几里德算法,是最大公约数的一种方法。它的具体做法是:用较大数除以较小数,再用出现的余数(第一余数)去除除数,再用出现的余数(第二余数)去除第一余数,如此反复,直到最后余数是0为止。...如果是两个数的最大公约数,那么最后的除数就是这两个数的最大公约数。...———来源:搜狗百科 核心思路 最大公约数方法:辗转相除法 最小公约数方法:(num1 x num2)÷最大公约数 例:125 15 两数的最大公约数和最小公倍数。...解:125 / 15 = 8 ······· 5 15 / 5 = 3 ······· 0 所以两数的最大公约数为5,最小公倍数为 (125 x 15) ÷ 5 = 375 C语言代码

    84420

    辗转相除法最大公约数

    介绍         辗转相除法(又称欧几里德算法)是一种最大公约数的算法。它基于这样一个事实:两个数的最大公约数等于较大数和较小数余数的最大公约数。...即两个数相除,再将除数和余数反复相除,当余数为0时,取当前除法的除数作为最大公约数。...如:18和24的最大公约数 //用较小数作除数 24/18=1余6 18/6=3余0 所以最大公约数是6  //用较大数作除数 18/24=0余18 24/18=1余6 18/6=...3余0 所以最大公约数是6 不管是用较小数还是较大数作为除数对结果都没有影响,只是用较小数作除数,运算过程要少些。...= 0)//余数为0,循环结束,i的值即为最大公约数 { i = a % b; a = b;//赋值,实现除数和余数的反复除法 b = i; } printf("%d\n", i);

    12010
    领券