作业帮 > 综合 > 作业

输入两个正整数m和n 求其最大公约数和最小公倍数

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/04/27 22:33:19
输入两个正整数m和n 求其最大公约数和最小公倍数
下面是我写的程序
最大公约数部分没有问题 最小公倍那里有问题
#include
main()
{
int m,n,r=0,s,w=0;
scanf("%d,%d",&m,&n);
r=m%n;w=m*n;
{while(r)
{
m=n;
n=r;
r=m%n;
}
printf("最大公约数为:%d",n);}//求最大公约数
if (r==0) printf("最小公倍数就是:%d",m);//不论我输入什么m什么n 执行的都是这一语句
if (m>n&&r!=0) printf("最小公倍数是:%d",w);
if (m
上面是while(r)退出的时候r当然是0了
求最小公倍数直接用最原始的数相乘,然后除上最大公约数就可以了
所以程序可以修改如下
#include
main()
{
int m,n,r=0,s,w=0;
scanf("%d,%d",&m,&n);
r=m%n;
w=m*n;
{
while(r)
{
m=n;
n=r;
r=m%n;
}
printf("最大公约数为:%d",n);
}//求最大公约数

printf("最小公倍数就是:%d",w/n);
}