Examples
input
1 5
output
No
input
3 6
output
Yes
题意:
a 和 m,a 不断加 a%m ,如果 a 有一次能够被 m 整除,则打印 Yes,如果一直循环永远不可能被 m 整除,则打印 No
解析:
可以观察到,a%m 每次的值有可能形成循环,如a=1,m=5,则 a%m 的取值为 1,2,4,3,1,2.....形成了循环,所以打印 No,如果有一次a%m==0,则为Yes
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e5+5;
int a,m;
int main(){
scanf("%d%d",&a,&m);
set<int>s;
while(1){
if(a%m==0){
puts("Yes");
return 0;
}
int t=a%m;
if(s.count(t)){
puts("No");
return 0;
}
s.insert(t);
a+=t;
}
puts("YES");
return 0;
}