int Gcd1(int m, int n) //穷举法求最大公约数
{int max, min;int i,t;if (m > n){max = m;min = n;}else{max = n;min = m;}for (i = min;i > 0;i--){if (min % i == 0 && max % i == 0){break;}}return i;
}int Gcd2(int m, int n) //辗转相除法求最大公约数
{int i=1;while (i != 0){i = m % n;m = n;n = i;}return m;
}int Gcd3(int m, int n) //递归法求最大公约数
{int i,t;if (m == n){i = n;}if (m < n){m = m + n;n = m - n;m = m - n;}if (m > n){for (int j = 1;;j++){m = m - n;if (m == n){i = n;break;}else if (m < 0){i = 1;break;}if (m < n){m = m + n;n = m - n;m = m - n;}}}return i;
}
int main()
{int m, n;scanf("%d%d",&m,&n);printf("%dn", Gcd1(m, n));printf("%dn", Gcd2(m, n));printf("%d", Gcd3(m, n));return 0;
}
本文发布于:2024-01-31 07:52:37,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170665875826871.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |