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

2020-04-19  本文已影响0人  psh_11

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

#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);
}
上一篇 下一篇

猜你喜欢

热点阅读