A30161.【循环】最小公倍数 题解
2025-01-03 20:18:32
发布于:江苏
49阅读
0回复
0点赞
有人钢枪!有人伏地!我手拿利器!摆头走你!这题太水了,就是最小公倍数模版,一点都不用动。
我们可以先求他的最大公因数,再用短除后的 n 和 m 乘上最大公因数
代码如下——
#include<bits/stdc++.h>
using namespace std;
int n,m;
int gcd(int a,int b){
if(b==0){
return a;
}
return gcd(b, a % b);
}
int lcm(int a,int b){
return(a/gcd(a,b))*b;
}
int main(){
cin>>n>>m;
cout<<lcm(n,m);
return 0;
}
当然,我们还可以十分暴力——
#include<bits/stdc++.h>
using namespace std;
int n,m;
int lcm(int a,int b){
int maxx;
if(a>b){
maxx=a;
}else{
maxx=b;
}
while(true){
if(maxx%a==0 && maxx%b==0){
return maxx;
}
maxx++;
}
}
int main(){
cin>>n>>m;
cout<<lcm(n,m);
return 0;
}
照样过关,小小公倍数,拿捏!
这里空空如也
有帮助,赞一个