问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

题目:输入两个正整数m和n,求其最大公约数和最小公倍数。用C语言编程

发布网友 发布时间:2023-10-13 06:21

我来回答

5个回答

热心网友 时间:2024-10-24 14:53

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

<1> 用辗转相除法求最大公约数
算法描述:
m对n求余为a, 若a不等于0
则 m <- n, n <- a, 继续求余
否则 n 为最大公约数
<2> 最小公倍数 = 两个数的积 / 最大公约数

#include
int main()
{
int m, n;
int m_cup, n_cup, res; /*被除数, 除数, 余数*/
printf("Enter two integer:\n");
scanf("%d %d", &m, &n);
if (m > 0 && n >0)
{
m_cup = m;
n_cup = n;
res = m_cup % n_cup;
while (res != 0)
{
m_cup = n_cup;
n_cup = res;
res = m_cup % n_cup;
}
printf("Greatest common divisor: %d\n", n_cup);
printf("Lease common multiple : %d\n", m * n / n_cup);
}
else printf("Error!\n");
return 0;
}

★ 关于辗转相除法, 搜了一下, 在我国古代的《九章算术》中就有记载,现摘录如下:

约分术曰:“可半者半之,不可半者,副置分母、子之数,以少减多,更相减损,求其等也。以等数约之。”

其中所说的“等数”,就是最大公约数。求“等数”的办法是“更相减损”法,实际上就是辗转相除法。

辗转相除法求最大公约数,是一种比较好的方法,比较快。

对于52317和75569两个数,你能迅速地求出它们的最大公约数吗?一般来说你会找一找公共的使因子,这题可麻烦了,不好找,质因子大。

现在教你用辗转相除法来求最大公约数。

先用较大的75569除以52317,得商1,余数23252,再以52317除以23252,得商2,余数是5813,再用23252做被除数,5813做除数,正好除尽得商数4。这样5813就是75569和52317的最大公约数。你要是用分解使因数的办法,肯定找不到。

那么,这辗转相除法为什么能得到最大公约数呢?下面我就给大伙谈谈。

比如说有要求a、b两个整数的最大公约数,a>b,那么我们先用a除以b,得到商8,余数r1:a÷b=q1…r1我们当然也可以把上面这个式子改写成乘法式:a=bq1+r1------l)

如果r1=0,那么b就是a、b的最大公约数3。要是r1≠0,就继续除,用b除以r1,我们也可以有和上面一样的式子:

b=r1q2+r2-------2)

如果余数r2=0,那么r1就是所求的最大公约数3。为什么呢?因为如果2)式变成了b=r1q2,那么b1r1的公约数就一定是a1b的公约数。这是因为一个数能同时除尽b和r1,那么由l)式,就一定能整除a,从而也是a1b的公约数。

反过来,如果一个数d,能同时整除a1b,那么由1)式,也一定能整除r1,从而也有d是b1r1的公约数。

这样,a和b的公约数与b和r1的公约数完全一样,那么这两对的最大公约数也一定相同。那b1r1的最大公约数,在r1=0时,不就是r1吗?所以a和b的最大公约数也是r1了。

有人会说,那r2不等于0怎么办?那当然是继续往下做,用r1除以r2,……直到余数为零为止

热心网友 时间:2024-10-24 14:53

//输入的两个数请用空格分隔,如:12 18
#include <stdio.h>
int main()
{
int p,r,n,m,temp;
printf("请输入两个正整数n,m:");
scanf("%d%d,",&n,&m);
if (n<m)
{
temp=n;
n=m;
m=temp;
}
p=n*m;
while(m!=0)
{
r=n%m;
n=m;
m=r;
}
printf("它们的最大公约数为:%d\n",n);
printf("它们的最小公约数为:%d\n",p/n);
return 0;
}

热心网友 时间:2024-10-24 14:54

我这个要复杂点:
#include<stdio.h>
void main()
{
unsigned long int t,s,i,h;
printf("请输入两个正整数a b\n");
scanf("%d%d",&t,&s);
if(s>t)
{
h=s;
s=t;
t=h;
}
if(t%s==0)
{
printf("最大公约数和最小公倍数分别是:");
printf("%d和%d\n",s,t);
}
else
for(i=t-1;i>=1;i--)
{
if(t%i!=0)
continue;
else
if(s%i!=0)
continue;
else
printf("最大公约数和最小公倍数分别是:%d和%d\n",i,t*s/i);
break;
}
}

热心网友 时间:2024-10-24 14:55

main()
{ int a,b,num1,num2,temp;
  printf("please input two numbers:\n");
  scanf("%d,%d",&num1,&num2);
  if(num1<num2)
 { temp=num1;
   num1=num2; 
   num2=temp;
  }
a=num1;b=num2;
while(b!=0)/*利用辗除法,直到b为0为止*/
  {
   temp=a%b;
   a=b;
   b=temp;
  }
printf("gongyueshu:%d\n",a);
printf("gongbeishu:%d\n",num1*num2/a);
}

热心网友 时间:2024-10-24 14:55

你要的答案吧

热心网友 时间:2024-10-24 14:53

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

<1> 用辗转相除法求最大公约数
算法描述:
m对n求余为a, 若a不等于0
则 m <- n, n <- a, 继续求余
否则 n 为最大公约数
<2> 最小公倍数 = 两个数的积 / 最大公约数

#include
int main()
{
int m, n;
int m_cup, n_cup, res; /*被除数, 除数, 余数*/
printf("Enter two integer:\n");
scanf("%d %d", &m, &n);
if (m > 0 && n >0)
{
m_cup = m;
n_cup = n;
res = m_cup % n_cup;
while (res != 0)
{
m_cup = n_cup;
n_cup = res;
res = m_cup % n_cup;
}
printf("Greatest common divisor: %d\n", n_cup);
printf("Lease common multiple : %d\n", m * n / n_cup);
}
else printf("Error!\n");
return 0;
}

★ 关于辗转相除法, 搜了一下, 在我国古代的《九章算术》中就有记载,现摘录如下:

约分术曰:“可半者半之,不可半者,副置分母、子之数,以少减多,更相减损,求其等也。以等数约之。”

其中所说的“等数”,就是最大公约数。求“等数”的办法是“更相减损”法,实际上就是辗转相除法。

辗转相除法求最大公约数,是一种比较好的方法,比较快。

对于52317和75569两个数,你能迅速地求出它们的最大公约数吗?一般来说你会找一找公共的使因子,这题可麻烦了,不好找,质因子大。

现在教你用辗转相除法来求最大公约数。

先用较大的75569除以52317,得商1,余数23252,再以52317除以23252,得商2,余数是5813,再用23252做被除数,5813做除数,正好除尽得商数4。这样5813就是75569和52317的最大公约数。你要是用分解使因数的办法,肯定找不到。

那么,这辗转相除法为什么能得到最大公约数呢?下面我就给大伙谈谈。

比如说有要求a、b两个整数的最大公约数,a>b,那么我们先用a除以b,得到商8,余数r1:a÷b=q1…r1我们当然也可以把上面这个式子改写成乘法式:a=bq1+r1------l)

如果r1=0,那么b就是a、b的最大公约数3。要是r1≠0,就继续除,用b除以r1,我们也可以有和上面一样的式子:

b=r1q2+r2-------2)

如果余数r2=0,那么r1就是所求的最大公约数3。为什么呢?因为如果2)式变成了b=r1q2,那么b1r1的公约数就一定是a1b的公约数。这是因为一个数能同时除尽b和r1,那么由l)式,就一定能整除a,从而也是a1b的公约数。

反过来,如果一个数d,能同时整除a1b,那么由1)式,也一定能整除r1,从而也有d是b1r1的公约数。

这样,a和b的公约数与b和r1的公约数完全一样,那么这两对的最大公约数也一定相同。那b1r1的最大公约数,在r1=0时,不就是r1吗?所以a和b的最大公约数也是r1了。

有人会说,那r2不等于0怎么办?那当然是继续往下做,用r1除以r2,……直到余数为零为止

热心网友 时间:2024-10-24 14:54

//输入的两个数请用空格分隔,如:12 18
#include <stdio.h>
int main()
{
int p,r,n,m,temp;
printf("请输入两个正整数n,m:");
scanf("%d%d,",&n,&m);
if (n<m)
{
temp=n;
n=m;
m=temp;
}
p=n*m;
while(m!=0)
{
r=n%m;
n=m;
m=r;
}
printf("它们的最大公约数为:%d\n",n);
printf("它们的最小公约数为:%d\n",p/n);
return 0;
}

热心网友 时间:2024-10-24 14:54

我这个要复杂点:
#include<stdio.h>
void main()
{
unsigned long int t,s,i,h;
printf("请输入两个正整数a b\n");
scanf("%d%d",&t,&s);
if(s>t)
{
h=s;
s=t;
t=h;
}
if(t%s==0)
{
printf("最大公约数和最小公倍数分别是:");
printf("%d和%d\n",s,t);
}
else
for(i=t-1;i>=1;i--)
{
if(t%i!=0)
continue;
else
if(s%i!=0)
continue;
else
printf("最大公约数和最小公倍数分别是:%d和%d\n",i,t*s/i);
break;
}
}

热心网友 时间:2024-10-24 14:55

main()
{ int a,b,num1,num2,temp;
  printf("please input two numbers:\n");
  scanf("%d,%d",&num1,&num2);
  if(num1<num2)
 { temp=num1;
   num1=num2; 
   num2=temp;
  }
a=num1;b=num2;
while(b!=0)/*利用辗除法,直到b为0为止*/
  {
   temp=a%b;
   a=b;
   b=temp;
  }
printf("gongyueshu:%d\n",a);
printf("gongbeishu:%d\n",num1*num2/a);
}

热心网友 时间:2024-10-24 14:55

你要的答案吧

热心网友 时间:2024-10-24 14:53

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

<1> 用辗转相除法求最大公约数
算法描述:
m对n求余为a, 若a不等于0
则 m <- n, n <- a, 继续求余
否则 n 为最大公约数
<2> 最小公倍数 = 两个数的积 / 最大公约数

#include
int main()
{
int m, n;
int m_cup, n_cup, res; /*被除数, 除数, 余数*/
printf("Enter two integer:\n");
scanf("%d %d", &m, &n);
if (m > 0 && n >0)
{
m_cup = m;
n_cup = n;
res = m_cup % n_cup;
while (res != 0)
{
m_cup = n_cup;
n_cup = res;
res = m_cup % n_cup;
}
printf("Greatest common divisor: %d\n", n_cup);
printf("Lease common multiple : %d\n", m * n / n_cup);
}
else printf("Error!\n");
return 0;
}

★ 关于辗转相除法, 搜了一下, 在我国古代的《九章算术》中就有记载,现摘录如下:

约分术曰:“可半者半之,不可半者,副置分母、子之数,以少减多,更相减损,求其等也。以等数约之。”

其中所说的“等数”,就是最大公约数。求“等数”的办法是“更相减损”法,实际上就是辗转相除法。

辗转相除法求最大公约数,是一种比较好的方法,比较快。

对于52317和75569两个数,你能迅速地求出它们的最大公约数吗?一般来说你会找一找公共的使因子,这题可麻烦了,不好找,质因子大。

现在教你用辗转相除法来求最大公约数。

先用较大的75569除以52317,得商1,余数23252,再以52317除以23252,得商2,余数是5813,再用23252做被除数,5813做除数,正好除尽得商数4。这样5813就是75569和52317的最大公约数。你要是用分解使因数的办法,肯定找不到。

那么,这辗转相除法为什么能得到最大公约数呢?下面我就给大伙谈谈。

比如说有要求a、b两个整数的最大公约数,a>b,那么我们先用a除以b,得到商8,余数r1:a÷b=q1…r1我们当然也可以把上面这个式子改写成乘法式:a=bq1+r1------l)

如果r1=0,那么b就是a、b的最大公约数3。要是r1≠0,就继续除,用b除以r1,我们也可以有和上面一样的式子:

b=r1q2+r2-------2)

如果余数r2=0,那么r1就是所求的最大公约数3。为什么呢?因为如果2)式变成了b=r1q2,那么b1r1的公约数就一定是a1b的公约数。这是因为一个数能同时除尽b和r1,那么由l)式,就一定能整除a,从而也是a1b的公约数。

反过来,如果一个数d,能同时整除a1b,那么由1)式,也一定能整除r1,从而也有d是b1r1的公约数。

这样,a和b的公约数与b和r1的公约数完全一样,那么这两对的最大公约数也一定相同。那b1r1的最大公约数,在r1=0时,不就是r1吗?所以a和b的最大公约数也是r1了。

有人会说,那r2不等于0怎么办?那当然是继续往下做,用r1除以r2,……直到余数为零为止

热心网友 时间:2024-10-24 14:54

//输入的两个数请用空格分隔,如:12 18
#include <stdio.h>
int main()
{
int p,r,n,m,temp;
printf("请输入两个正整数n,m:");
scanf("%d%d,",&n,&m);
if (n<m)
{
temp=n;
n=m;
m=temp;
}
p=n*m;
while(m!=0)
{
r=n%m;
n=m;
m=r;
}
printf("它们的最大公约数为:%d\n",n);
printf("它们的最小公约数为:%d\n",p/n);
return 0;
}

热心网友 时间:2024-10-24 14:54

我这个要复杂点:
#include<stdio.h>
void main()
{
unsigned long int t,s,i,h;
printf("请输入两个正整数a b\n");
scanf("%d%d",&t,&s);
if(s>t)
{
h=s;
s=t;
t=h;
}
if(t%s==0)
{
printf("最大公约数和最小公倍数分别是:");
printf("%d和%d\n",s,t);
}
else
for(i=t-1;i>=1;i--)
{
if(t%i!=0)
continue;
else
if(s%i!=0)
continue;
else
printf("最大公约数和最小公倍数分别是:%d和%d\n",i,t*s/i);
break;
}
}

热心网友 时间:2024-10-24 14:55

main()
{ int a,b,num1,num2,temp;
  printf("please input two numbers:\n");
  scanf("%d,%d",&num1,&num2);
  if(num1<num2)
 { temp=num1;
   num1=num2; 
   num2=temp;
  }
a=num1;b=num2;
while(b!=0)/*利用辗除法,直到b为0为止*/
  {
   temp=a%b;
   a=b;
   b=temp;
  }
printf("gongyueshu:%d\n",a);
printf("gongbeishu:%d\n",num1*num2/a);
}

热心网友 时间:2024-10-24 14:55

你要的答案吧

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
你觉得hx100在长焦机中怎样?处于什么水平? 索尼DSC-HX100显示功能 美的kfr-51lw/ y- pa1是什么故障代码 索尼DSC-HX100V基本参数 索尼DSC-HX100显示功能 索尼DSC-HX100主要参数 金龙鱼深海鱼油好不好? Y一60C81显示E5什么故障? 索尼DSCHX100质量如何 索尼DSC-HX100存储性能 我一个手机号注册了两个,另外一个登不上了,怎么办? 怎么把一个的数据转到另一个的数据? 在长沙,五一亲子去哪儿好玩 北京联合大学应用文理学院如何。 ...胡风之间到底有什么关系?当时老师讲现代文学史的时候我听得稀里糊涂... 阿咖酚 能治疗焦虑症 格斗中的四大要点是什么 近代中国所签订的所有不平等条约(按时间排列,时间和条约名字以及... 没有房子,户口可以独立出来吗? 不想跟父母在同一个户口本里面,可以独立出来吗,没有房产? 《津沽奇谭1:暗城杀机》免费在线观看完整版高清,求百度网盘资源 混沌军团招魂宝石怎么拿?10 混乱军团死亡魔魂吃下招魂宝石会变成什么形态 孙权劝学这篇文言文是怎样表现吕蒙学习的效果的?52 混沌军团 完全体死魔 在文言文《孙权劝学》中,课文是怎么表现吕蒙学识进步的?吕蒙的...595 想转行35岁了能做健身教练吗? 八字算命中天干杀劫才作用是什么1 女性35岁做健身教练可以吗会不会嫌老? 35岁男学健身教练靠谱吗?2 在《孙权劝学》里,吕蒙是怎样艰苦学习的?35 输入 两个整数m和n 求其最小的公倍数 如何用c语言来解决 谢谢 跨度4.5米的梁,高300,宽200的4根16厘钢筋够吗? ...1 梁截面250mmx500mm,梁长450mm,钢筋直径25m...1 手机卡掉了,被别人绑定了超级QQ,然后又被我取消了,这样还能不能查到... 敷脸用什么水好 太冲穴在人体什么位置5 人体太冲穴,和足三里在哪里啊5 如何去除房间内的异味?8 太冲穴在脚上的哪个位置3 如何去除房间异味30 请问太冲穴 行间穴 在哪个位置12 北海大润发在那里呢?1 洗澡前应怎样处理斜刘海,我的头发又油又软,洗完澡后刘海就变得很少很少... 新的没有朋友被封了请问怎么解除? 北海市人流量比较大的购物中心? 北海大型商场有哪些?5 ...留斜刘海,但是额头上长痘痘出油很厉害,刘海很容易变脏,怎么办?(急... 东北大学秦皇岛分校原来是什么学校 一个号码注册了两个 怎么找回第一个?