#include #include #include using namespace std; typedef long long LL; LL p, l, r; int q; vector segL, segR, segQ, pref; LL sum_pref(LL n) { if (n <= 0 || p == 0) return 0LL; if (n >= p) return pref.back() + (n - p) * p; int id = lower_bound(segR.begin(), segR.end(), n) - segR.begin(); LL base = (id == 0 ? 0LL : pref[id - 1]); LL L = segL[id], qv = segQ[id]; LL len = n - L + 1; LL sum = len * p - qv * (L + n) * len / 2; return base + sum; } int main() { // freopen("mod.in", "r", stdin); // freopen("mod.out", "w", stdout); scanf("%lld%d", &p, &q); if (p > 0) { for (LL n = 1; n <= p; ) { LL qv = p / n, r = p / qv; segL.push_back(n); segR.push_back(r); segQ.push_back(qv); LL len = r - n + 1; LL sum = len * p - qv * (n + r) * len / 2; LL total = (pref.empty() ? 0 : pref.back()) + sum; pref.push_back(total); n = r + 1; } } while (q--) { scanf("%lld%lld", &l, &r); printf("%lld\n", sum_pref(r) - sum_pref(l - 1)); } return 0; }