返回目录
说明:两个或多个整数公有的倍数叫做它们的公倍数,其中除0以外最小的一个公倍数就叫做这几个整数的最小公倍数
1)示例1:
输入:5 7 输出:35
2)示例2:
输入:4 6 输出:12
3)示例3:
输入:4 6 8 输出:24
Python源码
#include <stdio.h>
//获得最小公倍数
int doLCM(int* array,int size){
int x,y,num=array[0],i,gcd;
//去数组的第一和第二个数,计算它们的公倍数,然后再取第三个数,
//和之前的公倍数计算它们的公倍数,直到只有一个数。
for(i=0;(i+1)<size;i++){
x=num;
y=array[i+1];
//计算公约数
gcd = getGCD(x,y);
//计算公倍数
num = x/gcd * y/gcd * gcd;
}
return num;
}
//获取最大公约数
int getGCD(int a,int b){
int temp;
if(a < b){
temp = a;
a = b;
b = temp;
}
if(a%b == 0){
return b;
}else{
return getGCD(b,a%b);
}
}
int main(void){
int array[3] = {144,24,36};
int result = doLCM(array,3);
printf("%d\n",result);
return 0;
}
C语言源码
#include <stdio.h>
//获得最小公倍数
int doLCM(int* array,int size){
int x,y,num=array[0],i,gcd;
//去数组的第一和第二个数,计算它们的公倍数,然后再取第三个数,
//和之前的公倍数计算它们的公倍数,直到只有一个数。
for(i=0;(i+1)<size;i++){
x=num;
y=array[i+1];
//计算公约数
gcd = getGCD(x,y);
//计算公倍数
num = x/gcd * y/gcd * gcd;
}
return num;
}
//获取最大公约数
int getGCD(int a,int b){
int temp;
if(a < b){
temp = a;
a = b;
b = temp;
}
if(a%b == 0){
return b;
}else{
return getGCD(b,a%b);
}
}
int main(void){
int array[3] = {144,24,36};
int result = doLCM(array,3);
printf("%d\n",result);
return 0;
}
Java源码
public class Main {
/**
* 计算两个数的最大公约数
*/
private static int gcd(int a, int b) {
while (b != 0) {
int temp = a;
a = b;
b = temp % b;
}
return a;
}
/**
* 计算两个数的最小公倍数
*/
private static int lcm(int x, int y) {
return x / gcd(x, y) * y;
}
/**
* 计算整数数组的最小公倍数
*/
private static int doLCM(int[] array) {
int num = array[0];
for (int i = 1; i < array.length; i++) {
num = lcm(num, array[i]);
}
return num;
}
/**
* 主方法,程序入口
*/
public static void main(String[] args) {
int[] array = {144, 24, 36};
int result = doLCM(array);
System.out.println(result);
}
}
2 条评论
你的文章让我感受到了生活的美好,谢谢! http://www.55baobei.com/FWli3ZnHCH.html
[...]序号题目1父母小于等于n的最简真分数2大于n的最小回文素数3多个数的最小公倍数4多个数的最大公约数5文件单词统计610进制数转2进制[...]