输入两个正整数m和n 求其最大公约数和最小公倍数下面是我写的程序最大公约数部分没有问题 最小公倍那里有问题#includemain(){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("

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/03 13:20:13
输入两个正整数m和n 求其最大公约数和最小公倍数下面是我写的程序最大公约数部分没有问题 最小公倍那里有问题#includemain(){int m,n,r=0,s,w=0;scanf(

输入两个正整数m和n 求其最大公约数和最小公倍数下面是我写的程序最大公约数部分没有问题 最小公倍那里有问题#includemain(){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("
输入两个正整数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

输入两个正整数m和n 求其最大公约数和最小公倍数下面是我写的程序最大公约数部分没有问题 最小公倍那里有问题#includemain(){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("
上面是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);
}