1.利用公式法求两个数最小公倍数
假设现在要求最小公倍数的两个数为x,y,他们的最大公约数为p,最小公倍数为q。则x*y=p*q
2.最大公约数求法
int gg(int a,int b){
int c;
while(b){
c=a;
a=b;
b=c%b;
}
return a;
}
3.求几个数的最小公倍数
k=a;
k(a,b)=a*b/gg(a,b)
不断求两个数的最小公倍数与第三个数的最小公倍数
4.例题
题目描述
给定n个数字,求这n个数字的最小公倍数。
输入
输入分两行,第一行是一个n,代表有n个数字,接着第二行输入n个数字,数字均在int范围内
输出
输出这n个数字的最小公倍数,保证结果在int范围内
样例输入
3
1 2 3
样例输出
6
代码:
#include<iostream>
using namespace std;
int gg(int a,int b){
int c;
while(b){
c=a;
a=b;
b=c%b;
}
return a;
}
//k(a,b)=a*b/gg(a,b)
int main(){
int n,a[1001];
cin>>n;
for(int i=0;i<n;++i){
cin>>a[i];
}
long long k=a[0];
for(int i=1;i<n;++i){
k=k*a[i]/gg(k,a[i]);
}
cout<<k<<endl;
}