sdnuoj1097
前言
给定两个正整数,计算这两个数的最小公倍数.
输入包含多组测试数据,每组只有一行,包括两个不大于1000的正整数.
对于每个测试用例,给出这两个数的最小公倍数,每个实例输出一行.
一、代码
#include <bits/stdc++.h>
using namespace std;
//知识点:最小公倍数=M*N/最大公约数。
//两个或多个整数公有的倍数叫做它们的公倍数,其中除0以外最小的一个公倍数就叫做这几个整数的最小公倍数。
//最大公因数,也称最大公约数、最大公因子,指两个或多个整数共有约数中最大的一个。
int main() {
int m, n;
while (cin >> m >> n) {
int temp, n1, n2;
n1 = m;//将m,n赋值给其他两个数,以便后续操作
n2 = n;
while (n2 != 0) {
temp = n1 % n2;
n1 = n2;
n2 = temp;
}//计算最大公约数;
int g = m * n / n1;
cout << g<<endl;
}
return 0;
}
求最大公约数用辗转相除法循环求解(ps:这个是我刚刚学的)用除数和余数反复做除法运算,当余数为0时,取当前算式除数为最大公约数。
例:求1997和615的最大公约数
1997%615=152
615%152=7
152%7=5
7%5=2
5%2=1
2%1=0
即1997和615的最大公约数为1;
2.读入数据
代码如下(示例):
10 14
70
总结
由最小公倍数和最大公约数的关系可知,我们 求出最小公倍数的前提是求出最大公约数。
求最大公约数用辗转相除法循环求解(ps:这个是我刚刚学的)用除数和余数反复做除法运算,当余数为0时,取当前算式除数为最大公约数。