题目背景
聪明的欧几里得知道一种求p和q的最大公因数的方法,其步骤如下:
步骤1: 如果p < q,则交换p和q。
步骤2: 令r是p / q 的余数。
步骤3: 如果r = 0,则令g = q并终止; 否则令p = q, q = r并转向步骤2
题目描述
现在给出两个正整数p和q,请用欧几里得算法求出他们的最大公因数
输入格式
输入共一行,两个正整数n,m
输出格式
输出共一行,一个正整数x表示n和m的最大公因数
输入输出样例
输入 #1 复制
15 3
输出 #1 复制
3
输入 #2 复制
21 15
输出 #2 复制
3
说明/提示
保证n,m在int范围之内
#include<iostream>
using namespace std;
int gcd(int n,int m){
int t;
if(n < m){
t = n;
n = m;
m = t;
}
if(n % m == 0)
return m;
else
return gcd(m,n%m);
}
int main(){
int n,m;
cin>>n>>m;
cout<<gcd(n,m);
return 0;
}