寒风农场
这道题目的难点就在于读题目,我们不妨来简化一下题面, a + ( a m o d n ) + ( ( a + ( a m o d n ) ) m o d n ) + … a+(a \bmod n)+((a+(a \bmod n)) \bmod n)+\dots a+(amodn)+((a+(amodn))modn)+… 什么时候是 n n n 的倍数,我们再化简一下 ( a + ( a m o d n ) + ( ( a + ( a m o d n ) ) m o d n ) + … ) m o d n (a+(a \bmod n)+((a+(a \bmod n)) \bmod n)+ \dots ) \bmod n (a+(amodn)+((a+(amodn))modn)+…)modn 这个式子什么时候等于 0 0 0 。再再化简一下,可以得到 ( a + a 2 + a 4 + a 8 + … ) m o d n (a+a^2+a^4+a^8+ \dots ) \bmod n (a+a2+a4+a8+…)modn 这个式子什么时候等于 0 0 0 。接下来就是皆大欢喜的暴力了。
#include<bits/stdc++.h>
#define int long long
using namespace std;
int T,a,n;
bool check(int x)
{
int k=1;
if(x==0)
return false;
while(k<=x)
{
if(k==x)
return true;
k*=2;
}
return false;
}
signed main()
{
cin>>T;
for(int i=1;i<=T;i++)
{
scanf("%lld%lld",&a,&n);
bool flag=true;
for(int j=1;j<=30;j++)
{
if(a%n==0)
{
cout<<"Yes"<<endl;
flag=false;
break;
}
a*=2;
}
if(flag)
cout<<"No"<<endl;
}
}