题目:
两个整数共有的约数中最大的一个被称之为这两个整数的最大公约数。同样的这两个整数共有的约数中第二大的约数我们称之为这两个整数的次大公约数。现在给你两个正整数 a 和 b,请求出他们的次大公约数。注意:如果 a,b 只有一个公约数,则我们就说此时次大公约数不存在,这时你输出-1 即可。
输入:
4 6
输出:
1
代码:
#include<bits/stdc++.h>
using namespace std;
long long n,m,z;
int main(){
cin>>n>>m;
z=__gcd(n,m);
if(z==1)cout<<-1;
else
{
if(z%2==0)cout<<z/2;
else if(z%3==0)cout<<z/3;
}
return 0;
}