题目描述:
输入两个正整数m和n,判断m和n是否互质(即最大公约数为1),是则输出Yes,否则输出No。
输入格式:
输入两个整数m和n,中间用空格隔开。
输出格式:
如互质输出Yes,否则输出No。
样例输入:
36 56
样例输出:
No
提示:
1<=n,m<2^31
使用辗转相除法求出A、B的最大公约数(也就是最大公因数)。
欧几里德算法又称辗转相除法,是指用于计算两个正整数a,b的最大公约数。计算公式gcd(a,b) = gcd(b,a mod b)。
时间限制: 1000ms
空间限制: 256MB
代码如下:
#include<bits/stdc++.h>
using namespace std;
int main(){
int a,b,r;
cin>>a>>b;
while(1){
r=a%b;
if(r==0){
if(b==1){
cout<<"Yes";
break;
}else{
cout<<"No";
break;
}
}
a=b;
b=r;
}
return 0;
}