#include <iostream> using namespace std; void zhuanhuan(string& rs, int num) { int ys; rs = ""; while (num > 0) { ys = num % 2; num /= 2; rs = to_string(ys) + rs; } } bool compare(string A, string B) { int flag = 0; //flag=0表示没匹配到 char front; for (int i = 0; i < 16; i++) { // cout<<"A== "<<A<<endl<<"B== "<<B<<endl<<"====="<<endl;; if (B.find(A)!=string::npos) { flag = 1; break; } front = A[0]; A.erase(0, 1); A = A + front; } return flag; } int main() { int a, b; cin >> a >> b; string A, B; zhuanhuan(A, a); zhuanhuan(B, b); int lenA = A.length(), lenB = B.length(); for (int i = 0; i < 16 - lenA; i++) A = '0' + A; for (int i = 0; i < 16 - lenB; i++) B = '0' + B; if (compare(A, B)) { cout << "YES" << endl; } else { cout << "NO" << endl; } } // 64 位输出请用 printf("%lld")