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

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

作者: 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