#include using namespace std; int main(){ int N; cin >> N; int M; cin >> M; int H[N] = {}; for( int i = 1 ; i <= N ; i++ ){ // iのM乗をNで割った余りを繰り返し2乗法で計算する。 // int型だと計算途中でオーバーフローするのでlong long型を使う。 long long i_M = 1; long long power = i % N; int exponent = M; while( exponent > 0 ){ if( exponent % 2 == 1 ){ i_M = ( i_M * power ) % N; } power = ( power * power ) % N; exponent = exponent / 2; } if( H[i_M] != 0 ){ cout << "No" << endl; return 0; } H[i_M]++; } cout << "Yes" << endl; }