008.求最小公倍数

 

两个数的乘积等于这两个数的最大公约数与最小公倍数的积,所以先算出最大公约数,利用辗转相除法解决。

 

利用辗转相除法求最大公因数的步骤如下:

第一步:用较大的数m除以较小的数n得到一个商q0和一个余数r0

第二步:若r0=0,则n为m,n的最大公因数;若r0≠0,则用除数n除以余数r0得到一个商q1和一个余数r1

第三步:若r1=0,则r1为m,n的最大公因数;若r1≠0,则用除数r0除以余数r1得到一个商q2和一个余数r2

……

依次计算直至rn=0,此时所得到的rn-1即为所求的最大公因数。

 1 #include <iostream>
 2 #include "process.h"
 3 int main()
 4 {
 5     int num1, num2;
 6     std::cin >> num1 >> num2;
 7     int m, n, r;
 8     if (num1>num2)
 9     {
10         m = num1; n = num2;
11     }
12     else
13     {
14         m = num2; n = num1;
15     }
16     r = n;
17     while (r != 0)
18     {
19         r = m%n;
20         m = n;
21         n = r;
22     }
23     std::cout << num1*num2 / m << std::endl;
24     return 0;
25 }

 

posted @ 2015-09-30 18:04  Hoker  阅读(96)  评论(0)    收藏  举报