输入两个正整数m和n,输出它们的最小公倍数和最大公约数。

如题所述

第1个回答  2019-09-13
#include
int
main()
{

//这是逻辑很简单的一种实现,不过效率很低,不推荐,但是可以作为参考

int
p=0,q=0;

//这是需要做求他们公约数和公倍数的两个数据

int
m=-1,n=-1;

//m,公约数;n,公倍数;设置初始值为-1是有考虑的。

int
i=0;

//兼具循环控制和传值两个功能;

printf("输入要计算他们公约数和公倍数的两个整数\n");

scanf("%d",&p);

scanf("%d",&q);
...展开#include
int
main()
{

//这是逻辑很简单的一种实现,不过效率很低,不推荐,但是可以作为参考

int
p=0,q=0;

//这是需要做求他们公约数和公倍数的两个数据

int
m=-1,n=-1;

//m,公约数;n,公倍数;设置初始值为-1是有考虑的。

int
i=0;

//兼具循环控制和传值两个功能;

printf("输入要计算他们公约数和公倍数的两个整数\n");

scanf("%d",&p);

scanf("%d",&q);

for(i=p>q?q:p
;
i>=1;
--i
)

{

if(p%i==0)
//i是p的约数;

{

if(q%i==0)
//i也是q的约数;

{

m=i;

break;

}

}

}

n=p*q/m;

printf("%d和%d的最大公约数是%d,最小公倍数是%d",p,q,m,n);

return
0;
}
//这是穷举法,从两个数中较小的那个数逐一尝试,是一种直观的实现方法。条试过了,可以运行正确。收起
相似回答