【华为机试】求最小公倍数——c语言,python实现

题目描述

正整数A和正整数B 的最小公倍数是指 能被A和B整除的最小的正整数值,设计一个算法,求输入A和B的最小公倍数。

输入描述:

 
  

输入两个正整数A和B。

输出描述:

 
  

输出A和B的最小公倍数。

示例1

输入

复制
5 
7

输出

复制
35


解析思路:

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



猜你喜欢

转载自blog.csdn.net/acycy/article/details/80474393