题目描述
正整数A和正整数B 的最小公倍数是指 能被A和B整除的最小的正整数值,设计一个算法,求输入A和B的最小公倍数。
输入描述:
输入两个正整数A和B。
输出描述:
输出A和B的最小公倍数。
解析思路:
1.最小公倍数=两数的乘机 / 最大公倍数
2.最大公倍数——辗转相除法
辗转相除法:
(1)如果c=a%b==0(取余数),则返回b
(2)如果c=a%b!=0(取余数),则a=b,b=c,重复(1)
1.C语言代码如下:
#include <stdio.h>
/*求最大公约数——辗转相除法 */
int most(int a,int b){
int c;
while (a%b!=0){
c=a%b;
a=b;
b=c;
}
return b;
}
/*求最小公倍数=两树相乘/最大公约数*/
int less(int a,int b){
int c,d;
c=a*b;
d=c/(most(a,b));
return d;
}
int main(){
int a,b,c;
scanf("%d",&a);
scanf("%d",&b);
c=less(a,b);
printf("%d\n",c);
}
2.python 实现:
1.把输入的数转换为字符串
在python2中可以使用raw_input(),但是在python3中这个语句已被废弃,
所以可以用Str(input())代替
2.split()
把字符串划分,返回分割后的字符串列表,通过指定分隔符对字符串进行切片
while True:
try:
num = str(input()).split()
a = int(num[0])
b = int(num[1])
a1 = a
b1 = b
while (a1 % b1 != 0):
c = a1 % b1
a1 = b1
b1 = c
print(int(a * b / (b1)))
except:
break