Submission
Status:
PPPPPPPPPP
Subtask/Task Score:
100/100
Score: 100
User: kavin8888
Problemset: สามสหาย
Language: cpp
Time: 0.008 second
Submitted On: 2025-11-07 19:36:05
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define vi vector<int>
#define vb vector<bool>
#define spps cin.tie(0)->sync_with_stdio(false);
void sieve(int l,int r) {
ll ans=0;
vi res;
vb prime(3*r+1,true);
prime[0]=prime[1]=false;
for(int i=2;i*i<=3*r;i++) {
if(prime[i]) {
for(int j=i*i;j<=3*r;j+=i) {
prime[j]=false;
}
}
}
int pla=3*l,wan=3*r;
for(int i=pla;i<=wan;i++) {
if(prime[i]) {
res.push_back(i);
}
}
for(int i=l;i<=r;i++) {
int sum=i*3;
for(int j=0;j<res.size();j++) {
if(sum>res[j]) continue;
int mi=res[j]-sum;
int mx=min(mi,r-i);
int cnt=2*mx-mi+1;
if(mi>mx*2) continue;
ans+=(cnt+1)/2;
}
}
cout<<ans;
return;
}
int l,r;
int main(){
spps;
cin>>l>>r;
sieve(l,r);
}