输入两个正整数m和n,求其最大公约数和最小公倍数
问题分析:
输入两个正整数m和n,输出最大公约数和最小公倍数
最大公约数是几个数共有的因数最大的一个数字,8和12的最大公约数是4,用辗转相除法可以实现,其算法过程为:
设两数为a,b设其中a做被除数,b做除数,temp为余数
大数放a中,小数放b中;求a/b的余数;
若temp=0则b为最大公约数;
如果temp!=0则把b的值给a,temp的值给b;
最小公倍数=输入的两个数之积除于它们的最大公约数
算法描述:
代码实现:
#include <stdio.h>
int main()
{
int a,b,temp,m,t;
printf(\"请输入两个数:n\");
scanf(\"%d%d\",&a,&b);//输入两个数a,b
if(a<b)//如果a小于b,利用中间变量t进行互换
{
t=a;
a=b;
b=t;
}
m=a*b;//m为a,b乘积
temp=a%b;//temp为除数
while(temp!=0)
{
a=b;
b=temp;
temp=a%b;
}
printf(\"最大公约数是:n%dn\",b);
printf(\"最小公倍数是:n%dn\",m/b);
return 0;
}
运行结果:
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。