本题要求两个给定正整数的最大公约数和最小公倍数。
输入格式:
输入在一行中给出两个正整数M和N(≤1000)。
输出格式:
在一行中顺序输出M和N的最大公约数和最小公倍数,两数字间以1空格分隔。
输入样例:
511 292
输出样例:
73 2044
鸣谢安阳师范学院段晓云老师和软件工程五班李富龙同学补充测试数据!
以下为原答案
#include <stdio.h>
int main (void)
{
int m,n,p;
scanf ("%d %d",&m,&n);
if (m>1000 || n>1000)
{
return 0;
}
if (m>n) //m小n大
{
p=m;
m=n;
n=p;
}
int j,c,a;
if (m!=n) //当m,n不等时
{
for (int i=1;i<=m;i++) //求最大公约数
{
if (m%i==0)
{
if (n%i==0)
{
j=i;
}
}
}
for (c=1; ;c++) //求最小公倍数
{
if ((n*c)%m==0)
{
a=n*c;
break;
}
}
}
else //当m,n相等时
{
j=m;
a=m;
}
printf ("%d %d",j,a);
return 0;
}