最大公约数(最小公倍数)
本质:求自然数m和n的最大公约数。
复杂度:O(1)
流程:将较大数除以较小数,将除数作为新的被除数,余数作为新的除数进行新的操作,若余数为零,则此时的除数为两数最大公约数。递归易实现。
原理:辗转相除法(将两数乘积除以最大公约数即为最小公倍数)
实现:
#include<bits/stdc++.h>
using namespace std;
long long m,n;
int zuidagongyue(long long m,long long n)
{
if(m%n==0) return n;
return zuidagongyue(n,m%n);
}
int main()
{
cin>>m>>n;
if(m<n)
{
swap(m,n);
}
cout<<zuidagongyue(m,n)<<endl;
return 0;
}
最大公约数
最新推荐文章于 2021-04-25 20:59:01 发布