func_code_string: #include <bits/stdc++.h>   using namespace std;   const long long md = 1e9 + 7;   long long fe(long long e) {     if (e == 0) return 1;     long long ans = fe(e / 2);     ans = (ans * ans) % md;     if (e % 2) ans *= 2;     return (ans % md);   }   int main() {     long long x, y;     cin >> x >> y;     if (y % x) {       cout << 0 << endl;       return 0;     }     long long k = y / x;     vector<int> pp;     long long kk = k;     for (long long p = 2; p < 1e5; p++) {       if (kk % p == 0) {         pp.push_back(p);         while (kk % p == 0) kk /= p;       }     }     if (kk > 1) pp.push_back(kk);     long long ans = fe(k - 1);     int mx = 1 << (int)pp.size();     for (int i = 1; i < mx; i++) {       long long p = 1, sgn = 1;       for (int j = 0; 1 << j <= i; j++) {         if (1 << j & i) {           p *= pp[j];           sgn *= -1;         }       }       ans += sgn * fe(k / p - 1);       ans %= md;       while (ans < 0) ans += md;     }     cout << ans << endl;     return 0;   }   