题目
时间限制: 1 Sec 内存限制: 128 MB
根据公式求,例如(a,b)×[a,b]=a×b。由于两个数的乘积等于这两个数的最大公约数与最小公倍数的积。所以,求两个数的最小公倍数,就可以先求出它们的最大公约数,然后用上述公式求出它们的最小公倍数。
题目描述
输入任意两个数A,B,求AB的最小公倍数
输入
输入A,B
输出
输出其结果
样例输入 Copy
最小公倍数可以用公式法求。两个数的乘积等于这两个数的最大公约数与最小公倍数的积。即(a,b)×[a,b]=a×b。所以求两个数的最小公倍数,就可以先求出它们的最大公约数,然后用公式求出它们的最小公倍数。
样例输出 Copy
提示
最小公倍数=A*B/最大公约数
1、最小公倍数=两数的乘积/最大公约(因)数。2、分解质因数法:先列出相关数的质因数,最小公倍数等于所有的质因数的乘积。3、公式法:由于两个数的乘积,等于这两个数的最大公约数与最小公倍数的积,所以求最小。
答案在下方
答案:
1.公式法:由于两个数的乘积,等于这两个数的最大公约数与最小公倍数的积,所以求最小公倍数需先求出最大公约数,用公式求出最小公倍数。2.分解质因素法:先分别分解准这几个数的质因数,则最小公倍数等于它们所。
#include<bits/stdc++.h>using namespace std;bool pd(long long n){ bool t=true; if(n<=1) t=false; for(long long i=2;i*i<=n;i++) if(n%i==0) t=false; return t;}int main(){ int n,最小公倍数最简便算法,m,b=1,t1,t2,i; cin>>m>>n; t1=m;t2=n; i=2; if(t1<1||t2<1) { return 0; } if(t1%t2==0||t2%t1==0) { cout<<max(t1,t2); return 0; } t1=m;t2=n; i=2; while(!pd(t1)&&!pd(t2)) { if(t1%i==0&&t2%i==0) { t1/=i;t2/=i; b*=i; } else i++; } b*=t1*t2; cout<<b; return 0;}