编写程序求两个整数的最大公约数

本文介绍了如何编写C语言程序来计算两个整数的最大公约数(GCD),采用经典算法Euclid算法。程序引导用户输入两个整数,然后通过不断除法和取余数的方法,当余数为0时,得到的除数即为GCD。此外,还提到了从较小数开始除到1的思路,若余数始终不为0,则GCD为1。
摘要由CSDN通过智能技术生成

编写程序,要求用户输入两个整数,然后计算并显示这两个整数的最大公约数(GCD):

Enter two integers: 12 28

Greatest common aivisor: 4

提示:求最大公约数的经典算法是Euclid算法,方法如下:分别让变量m和n存储两个数的值;用m除

以n;把除数保存在m中,而把余数保存在n中;如果n为0,那么停止操作,m中的值是GCD;否则,

从m除以n开始,重复上述除法过程。

或者从两个整数中较小的那个数开始除到1,如果余数一直不为0 说明他们的最大公约数是1。

Euclid算法程序如下:

#include <stdio.h>

main() {
    int m, n, a;
    printf("Enter two integers:");
    scanf("%d%d", &m, &n);
    if (m < n) { a = m; m = n; n = a; }
    while (m % n != 0) {
        a = n;
        n = m % n;
        m = a;
    }
    printf("Greatest common divisor: %d", n);
    return 0;
}

常规思路程序如下:

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值