fork download
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. long long tong[1000005];
  4. long long uoc[1000005];
  5. //Hàm sanguoc() là hàm sàng biến đổi để tính tổng các ước của 1 số
  6. void sanguoc(){
  7. uoc[0]=0;
  8. for (int i=1;i<=1000000;i++)
  9. for (int j=i;j<=1000000;j+=i)
  10. uoc[j]+=i;
  11. }
  12. // Hàm sangkhh() dùng mảng cộng dồn để tính tổng trên đoạn
  13. void sangkhh(){
  14. tong[0]=0;
  15. for (int i=1;i<=1000000;i++)
  16. tong[i]=tong[i-1]+abs(uoc[i]-i*2);
  17. }
  18. void solve(){
  19. int a, b;
  20. cin >> a >> b;
  21. cout << tong[b]-tong[a-1] << "\n";
  22. }
  23. int main(){
  24. ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
  25. int t;
  26. cin >> t;
  27. sanguoc();
  28. sangkhh();
  29. while (t--) solve();
  30. }
Success #stdin #stdout 0.08s 19276KB
stdin
2
1 8
24 24
stdout
16
12