#include #include #include #include #include #include using namespace std; vector divs; void find_div( long long int a, long long int b ) { long long int i, n = (long long int)( min( a, b ) / 2 ); //cout << n << endl; for ( i = 1; i <= n; i++ ) { if ( a % i == 0 && b % i == 0 ) divs.push_back( i ); } } long long int find_count( long long int l, long long int r ) { long long int i = 0, n = divs.size() - 1; long long int br = 0; for ( ; i <= n; i++ ) { if ( divs[ i ] >= l && divs[ i ] <= r ) br++; } //cout << i << " " << n << endl; //system("pause"); //br -= ( divs.size() -1 - n ); //if ( br < 0 ) br = 0; return br; } int main() { fstream f, fo; long long int a, b; f.open( "game.in", ios :: in ); f >> a >> b; find_div( a, b ); //for ( int t = 0; t < divs.size(); t++ ) cout << divs[ t ] << endl; //system("pause"); long long int k, i, l, r, res; f >> k; vector< long long int > ans; for ( i = 0; i < k; i++ ) { f >> l >> r; res = find_count( l, r ); //cout << res << endl; //fo << res << endl; ans.push_back( res ); } f.close(); fo.open( "game.out", ios :: out ); for ( int t = 0; t < ans.size(); t++ ) fo << ans[ t ] << endl; fo.close(); //system("pause"); return 0; }