提交时间:2023-08-16 12:09:21

运行 ID: 98631

#include<bits/stdc++.h> using namespace std; #define N 400001 #define ll long long vector<int>ys[N]; int T,l,r; int main(){ for(int i=1;i<N;++i){ for(int j=i;j<N;j+=i){ ys[j].push_back(i); } } scanf("%d",&T); while(T--){ scanf("%d%d",&l,&r); ll ans=1ll*(r-l+1)*(r-l)*(r-l-1)/6; for(int i=r;i>=l+2;--i){ int k=lower_bound(ys[i].begin(),ys[i].end(),l)-ys[i].begin(); int x=ys[i].size()-k-1; ans-=1ll*x*(x-1)/2; if(i%6==0&&i/2>=l)--ans; if(i%15==0&&i/5*2>=l)--ans; } printf("%lld\n",ans); } return 0; }