- #include <stdio.h>
- #include <stdlib.h>
- int main( )
- {
- int m,n,r;
- printf("输入两个正整数(空格分隔):\n");
- scanf("%d %d",&m,&n);
- r = m % n; //r取m除以n的余数
- while(r != 0) //辗转相除
- {
- m = n; //小数给m
- n = r; //余数给n
- r = m % n; //r再次取m除以n的余数
- }
- printf("最大公约数是%d\n",n);
- system("pause");
- return 0;
- }
输入两个正整数(空格分隔):
56 72
最大公约数是8
辗转相除法求最大公约数:始终用较大的数除以较小的数,直至除尽。
ref: https://www.weixueyuan.net/a/326.html