fork download
  1. #include <bits/stdc++.h>
  2. #define int long long
  3. using namespace std;
  4. const int MOD = 1e9 + 7;
  5.  
  6. int f(int n, int x) {
  7. int l = n / x;
  8. int last = x + (l - 1) * x;
  9. last %= MOD;
  10. int cur = (x + last) * l;
  11. if (cur % 2 == 0) return (cur / 2) % MOD;
  12. else return ((cur + MOD) / 2) % MOD;
  13. }
  14.  
  15. int lcm(int a, int b) {
  16. return a / __gcd(a, b) * b;
  17. }
  18.  
  19. int calc(int n, int a, int b, int c) {
  20. return (f(n, a) + f(n, b) + f(n, c) - f(n, lcm(a, b)) - f(n, lcm(b, c)) - f(n, lcm(c, a)) + f(n, lcm(a, lcm(b, c)))) % MOD;
  21. }
  22.  
  23. signed main() {
  24. ios_base::sync_with_stdio(0);
  25. cin.tie(0);
  26. int a, b, c;
  27. cin >> a >> b >> c;
  28. int q;
  29. cin >> q;
  30. while (q--) {
  31. int l, r;
  32. cin >> l >> r;
  33. cout << ((calc(r, a, b, c) - calc(l - 1, a, b, c)) % MOD + MOD) % MOD << '\n';
  34. }
  35. return 0;
  36. }
Success #stdin #stdout 0s 5320KB
stdin
2 3 5
3
1 10
4 12
15 15
stdout
47
54
15