1.输入两个正整数m和n..求最大公约数和最小公倍数。答案没有版本。

输入两个正整数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,...直到余数为零。

这种方法先做除数,下一步就成被除数了。这就是分部名称的由来。