版权声明:本文为博主原创文章,转载请附上博文链接! https://blog.csdn.net/weixin_43526304/article/details/85205003
本题要求两个给定正整数的最大公约数和最小公倍数。
输入格式:
输入在一行中给出两个正整数M和N(≤1000)。
输出格式:
在一行中顺序输出M和N的最大公约数和最小公倍数,两数字间以1空格分隔。
输入样例:
511 292
输出样例:
73 2044
鸣谢安阳师范学院段晓云老师和软件工程五班李富龙同学补充测试数据!
思路:辗转相除法求出最大公约数 最小公倍数 = 两数之积/最大公约数
PS:如果有同学不了解辗转相除法 可以参考以下链接 https://baike.baidu.com/item/辗转相除法/4625352
#include<stdio.h>
int main()
{
int m,n;
int d;
scanf("%d%d",&m,&n);
int a = m;
int b = n;
while(n!=0)
{
d = m % n;
m = n;
n = d;
}
int A = a / m;
int B = b / m;
int S = A*B*m;
printf("%d %d\n",m,S);
return 0;
}