最大公约数
输入两个数,求其最大公约数
辗转相除法:辗转相除法不需要把两个数作质因子分解,而是利用以下理论来确定两个正整数m和n 的最大公约数:如果q和r分别是m除以n的商和余数,即m=nq+r,则gcd(m,n)=gcd(n,r)。gcd(m,n)表示m,n的公约数。
辗转相除法的思想是:对于给定的两个正整数,用较大的数除以较小的数,若余数不为零,则将余数和较小的数组成一队新的数,继续进行上面的过程,直到大数被小数除尽,这就是较小的数就是原来两个数的最大公约数。
输入
两个正整数
输出
两个数的最大公约数
样例
样例输入1
28 42
样例输出1
14
code:
#include <bits/stdc++.h> using namespace std; int f(int m,int n){ if(n==0) return m; return f(n,m%n); } int main() { int a,b; cin>>a>>b; cout<<f(a,b)<<endl; return 0; }

浙公网安备 33010602011771号