#include <stdio.h> int main() { int m,n; int a,b,r; while(scanf("%d%d",&m,&n)!=EOF) { if(m<1||n<1) continue; a=(m>n)?m:n; b=(m<=n)?m:n; r=a%b; while(r) { a=b; b=r; r=a%b; } printf("%d ",b); } return 0; }求最大公约数这种算法比较高效,但是不好理解。还可以用循环穷举求解,效率偏低。
#include <stdio.h> int main() { int m,n; int a,b,r; while(scanf("%d%d",&m,&n)!=EOF) { if(m<1||n<1) continue; a=(m>n)?m:n; b=(m<=n)?m:n; r=a%b; while(r) { a=b; b=r; r=a%b; } printf("%d ",b); } return 0; }求最大公约数这种算法比较高效,但是不好理解。还可以用循环穷举求解,效率偏低。