求两个数的最小公因数和最大公倍数

/*求最小公因数和最大公倍数*/
#include
int min(int m, int n);int main()
{int _min = 0, _max = 0;int i,m=0, n=0;scanf("%d %d", &m, &n);for (i = 1; i <= min(m,n); i++){if ((m % i )== 0 &&( n % i) == 0){_max = i;}}for (i = min(m, n); i <= m * n; i++){if ((i % m) == 0 && (i % n) == 0){_min = i; break;//切记是最小公倍数所以用break;}}printf("%d %d", _max, _min);return 0;
}int min(int m, int n){if (m > n)return n;else return m;
}

改进:

经过后面的学习,求最小公倍数和最大公因数也可以用递归来处理,关键是最小公倍数和最大公因数还存在关系。


#include
int gcd(int a,int b)//递归求最大公因数
{
if(b==0)
{return a;
}
return gcd(b,a%b);
}int main()
{int a, b;scanf("%d %d", &a, &b);int gys = gcd(a, b);//gys是最大公因数int gbs = a / gys * b;//gbs是最大公倍数,且gys*gbs=a*b;printf("%d %d", gys, gbs);return 0;
}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部