"
两个数的乘积等于这两个数的最大公约数与最小公倍数的积,所以先算出最大公约数,利用辗转相除法解决。
利用辗转相除法求最大公因数的步骤如下:
第一步:用较//代码效果参考:https://v.youku.com/v_show/id_XNjQwNjgzOTQwMA==.html
大的数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
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 //代码效果参考:https://v.youku.com/v_show/id_XNjQwNjgzOTQwOA==.html
return 0;25 }
"