c语言求最大公约数

 我来答
小叶教育问答
2022-11-16 · TA获得超过4008个赞
知道大有可为答主
回答量:7.5万
采纳率:99%
帮助的人:1166万
展开全部

最大公约数c语言编程的常用思路是:按照从大(两个整数中较小的数)到小(到最小的整数1)的顺序求出第一个能同时整除两个整数的自然数,即为所求。

两个数的最大公约数有可能是其中的小数,所以在按从大到小顺序找寻最大公约数时,循环变量i的初值从小数n开始依次递减,去寻找第一个能同时整除两整数的自然数,并将其输出。

需要注意的是,虽然判定条件是i>0,但在找到第一个满足条件的i值后,循环没必要继续下去,如,25和15,最大公约数是5,对于后面的4、3、2、1没必要再去执行,但此时判定条件仍然成立,要结束循环只能借助break语句。

具体代码实现:

#include<stdio.h>

int main()

{

int m,n,temp,i;

printf("Input m&n:");

scanf("%d%d",&m,&n);

if(m<n)/*比较大小,使得m中存储大数,n中存储小数*/

{/*交换m和n的值*/

temp=m;

m=n;

n=temp;

}

for(i=n;i>0;i--)/*按照从大到小的顺序寻找满足条件的自然数*/

if(m%i==0&&n%i==0)

{/*输出满足条件的自然数并结束循环*/

printf("The GCD of%d and%d is:%d\n",m,n,i);

break;

}

return 0;

}

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式