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);
}