fork download
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. const int MOD = 1e9 + 7;
  6.  
  7. long long l, r;
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17. int power(long long a, long long b) {
  18. if (b == 0) return 1;
  19. if (b & 1) return ((a % MOD) * (power((a % MOD * a % MOD) % MOD, (b - 1) / 2) % MOD)) % MOD;
  20. return power(((a % MOD) * (a % MOD)) % MOD, b / 2) % MOD;
  21. }
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28. int sum(long long n) {
  29. // n * (n + 1) / 2
  30. return (((n % MOD) * ((n + 1) % MOD)) % MOD * power(2, MOD - 2)) % MOD;
  31. }
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39. int calc(long long i, long long j, long long q) {
  40. // q * sum(i -> j)
  41. return ((q % MOD) * ((sum(j) - sum(i - 1) + MOD) % MOD)) % MOD;
  42. }
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50. int sumdivisor(long long n) {
  51. long long ans = 0;
  52.  
  53. long long i = 1;
  54.  
  55. while (i <= n) {
  56. long long q = n / i;
  57. long long j = n / q;
  58.  
  59. ans += q * (j - i + 1);
  60.  
  61. i = j + 1;
  62. }
  63.  
  64. return ans;
  65. }
  66.  
  67.  
  68.  
  69.  
  70. signed main() {
  71. ios::sync_with_stdio(false);
  72. cin.tie(0); cout.tie(0);
  73.  
  74.  
  75.  
  76. cin >> l >> r;
  77.  
  78. cout << ((sumdivisor(r)%MOD - sumdivisor(l - 1)%MOD + MOD)%MOD);
  79.  
  80. return 0;
  81. }
Success #stdin #stdout 0.01s 5284KB
stdin
Standard input is empty
stdout
Standard output is empty