1.输入两个正整数m和n..求最大公约数和最小公倍数。答案没有版本。
求最大公约数和最小公倍数。
& lt1 & gt;
用相除法求最大公约数。
算法描述:
m到n的余数是a,
如果a不等于0
规则
m
& lt-
n,
n
& lt-
一,
继续求余数
否则
n
是最大公约数
& lt2 & gt
最小公倍数
=
两个数的乘积
/
最大公约数
#包括
(同Internationalorganizations)国际组织
主()
{
(同Internationalorganizations)国际组织
m,
n;
(同Internationalorganizations)国际组织
m_cup,
n _杯,
res
/*除法器,
分割线,
余数*/
printf("Enter
二
整数:\ n ");
scanf("%d
%d”,
& ampm,
& ampn);
如果
(m
& gt
& amp& amp
n
& gt0)
{
m_cup
=
m;
n _杯
=
n;
表示留数
=
m_cup
%
n _ cup
在…期间
(分辨率
!=
0)
{
m_cup
=
n _ cup
n _杯
=
res
表示留数
=
m_cup
%
n _ cup
}
printf("最伟大
普通的
除数:
%d\n ",
n _ cup);
printf("租赁
普通的
多个的
:
%d\n ",
m
*
n
/
n _ cup);
}
其他
printf("错误!\ n ");
返回
0;
}
★
关于辗转反侧的划分,
我搜索了一下,
中国古代《九章算术》中有记载,现摘录如下:
分之术曰:“是半者半,非半者非半。把分母和孩子的数量放成一对,以少减多,甚至更多的互相减损,以求得平等。关于它的同等数量。”
里面提到的“相等的数”就是最大公约数。求“等差数”的方法是“多相减法”,其实就是除以除。
用相除法求最大公约数是一种更好更快的方法。
能否快速找到52317和75569这两个数的最大公约数?一般来说,你会寻找大众的促成因素。这个问题麻烦,不好找,定性因素大。
现在教你用除法求最大公约数。
将较大的75569除以52317得到商1和余数23252,再除以52317得到商2,余数为5813,然后用23252作为被除数,5813作为除数。所以5813是75569和52317的最大公约数。如果用因式分解法,就找不到了。
那么,为什么这个除法可以得到最大公约数呢?现在我要和你谈谈。
例如,如果需要两个整数A和B的最大公约数,并且A > B,那么我们用A除以B得到商8,余数r1: a÷b = q1...r1。当然,我们也可以把上面的公式改写成一个乘法公式:a = bq1。
如果r1=0 = 0,那么b就是A和b的最大公约数,如果r1≠0,继续除以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的公约数完全相同,所以这两对的最大公约数一定相同。那么当r1 = 0时,b 1的最大公约数是r1?所以a和b的最大公约数是r1。
有人会说,r2不等于0怎么办?那当然是继续做,用r1除以r2,...直到余数为零。
这种方法先做除数,下一步就成被除数了。这就是分部名称的由来。