美文网首页
求两个正整数的最大公约数

求两个正整数的最大公约数

作者: psh_11 | 来源:发表于2020-04-19 08:58 被阅读0次

    这里用到的是 辗转相除法 又叫 欧几里得算法,用于高效计算两个数的最大公约数。

    #include <stdio.h>
    
    int zdgys(int a, int b)
    {
        if(a<=0 && b<=0)
            printf("请输入正整数");
            
        if(a%b == 0)
            return b;//b就是最大公约数
        else
            return zdgys(b, a%b);//辗转相除
    }
    
    int main(void)
    {
        int a,b,com;
        printf("请输入两个数:\n");
        scanf("%d %d",&a,&b);
        com=zdgys(a,b);
        printf("%d和%d的最大公约数为:%d\n",a,b,com);
    }
    

    相关文章

      网友评论

          本文标题:求两个正整数的最大公约数

          本文链接:https://www.haomeiwen.com/subject/cucebhtx.html