#include #include #include #include #include #include #include #include #include #include using namespace std; vector del; long long gcd(long long u, long long int v) { int shift; if (u == 0) return v; if (v == 0) return u; for (shift = 0; ((u | v) & 1) == 0; ++shift) { u >>= 1; v >>= 1; } while ((u & 1) == 0) u >>= 1; do { while ((v & 1) == 0) v >>= 1; if (u > v) { long long t = v; v = u; u = t;} v = v - u; } while (v != 0); return u << shift; } void deliteli(long long A,long long B) { for(long long i=1;i<=gcd(A,B);i++) { if(A%i==0 && B%i==0) del.push_back(i); } } long long binary(long long X) { long long L=0; long long R=del.size()-1; if(X>del[R]){ return R; } while(R-L>1) { long long mid=(L+R)/2; if(del[mid]>X) R=mid; else L=mid; } if(del[L]==X) { return L-1;} return L; } int main() { ifstream file("game.in",ios::in); ofstream file1("game.out",ios::out);//file1<< <<'\n'; long long A,B,K,L,R; file>>A>>B; file>>K; long long br; deliteli(A,B); //sort(del.begin(),del.end()); for(int i=0;i>L>>R; br=binary(R)-binary(L); // cout<