这里用到的是 辗转相除法 又叫 欧几里得算法,用于高效计算两个数的最大公约数。
#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);
}
网友评论