重点在于为什么要去求最大公约数。
因为原理:
设d是a和b的最大公约数,则d|a且d|b,那么根据性质得到,d|a-b且d|a+b,
所以能够取的数,一定是a和b的最大公约数的倍数。
那么这样能够取的数一定有多少个呢?有d, 2d, 3d, 4d..... 那么个数就是 n/gcd(a,b) 个。
如果n/gcd(a,b)是单数则花椰妹赢。
#include<iostream>
#include<bits/stdc++.h>
using namespace std;
int gcd(int a,int b )
{
if(b==0)
return a;
return gcd(b,a%b);
}
int main()
{
int t;
cin>>t;
for(int i=1;i<=t;i++)
{
int n,a,b;
cin>>n>>a>>b;
if(i!=1) cout<<endl;
if(n/gcd(a,b)&1) cout<<"huaye";
else
cout<<"suantou";
}
return 0;
}