早在公元前300年左右,欧几里得就在他的著作《几何原本》中给出了高效的解法——辗转相除法。
#include <stdlib.h> #include <stdio.h> //辗转相除法求最大公约数 int gcd(int m, int n) { int r; r=m%n; if(r == 0) return n; else return gcd(n, r); } void main() { int m,n; printf("请输入2个整数: "); scanf("%d,%d",&m,&n); printf("%d,%d的最大公约数为: %d \n", m, n, gcd(m, n)); system("pause"); }
运行结果