// includes #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include // macros #define ll long long int #define pb emplace_back #define mk make_pair #define pq priority_queue #define FOR(i, a, b) for(int i=(a);i<(b);++i) #define rep(i, n) FOR(i, 0, n) #define rrep(i, n) for(int i=((int)(n)-1);i>=0;i--) #define all(x) (x).begin(),(x).end() #define sz(x) ((int)(x).size()) #define UNIQUE(v) v.erase(unique(v.begin(), v.end()), v.end()) using namespace std; // types typedef pair P; typedef pair Pl; typedef pair Pll; typedef pair Pd; // constants const int inf = 1e9; const ll linf = 1LL << 50; const double EPS = 1e-10; const int mod = 1e9 + 7; // solve template bool chmax(T &a, const T &b){if(a < b){a = b; return 1;} return 0;} template bool chmin(T &a, const T &b){if(a > b){a = b; return 1;} return 0;} ll m[100001], msum[100001]; ll L[100001], R[100001]; ll sum[100001]; ll b = 0; ll p, q; ll calc(ll x){ if(x > p)return calc(p) + p * (x - p); if(x <= b)return msum[x]; ll res = msum[b]; ll i = p / x; res += sum[i+1]; res += p * (x - L[i] + 1) - i * (x - L[i] + 1) * (x + L[i]) / 2; return res; } int main(int argc, char const* argv[]) { ios_base::sync_with_stdio(false); cin.tie(0); cin >> p >> q; b = (ll)(sqrt(p)); for(int i = 1; i <= b; i++)m[i] = p % i; for(int i = 1; i <= b; i++){ msum[i] = m[i]; msum[i] += msum[i-1]; } for(int i = 1; i <= b; i++){ if(i == b && p / (b + 1) != b){ L[i] = 0; R[i] = -1; continue; } L[i] = max(b + 1, p / (i + 1) + 1); R[i] = max(L[i], p / i); } for(int i = b; i > 0; i--){ sum[i] = p * (R[i] - L[i] + 1) - (ll)i * (R[i] - L[i] + 1) * (R[i] + L[i]) / 2; sum[i] += sum[i+1]; } rep(i, q){ int l, r; cin >> l >> r; cout << calc(r) - calc(l-1) << endl; } return 0; }