You are viewing a single comment's thread. Return to all comments →
Seems like cookies are disabled on this browser, please enable them to open this website
Twins
You are viewing a single comment's thread. Return to all comments →
#include
#include
#include
#include
#include
using namespace std;
int primeTable[100001];
vector primeList;
void sieve(){
fill(primeTable,primeTable+100000,0);
primeTable[1]=1;
for(int i=2;i<=100000;i++){
if(primeTable[i]==0){
primeList.push_back(i);
for(int j=i*2;j<=100000;j+=i) primeTable[j]=1;
}
}
}
bool isPrime[1000001];
void fill_up(int n,int m){
//cout<
if(n==1) isPrime[0]=true;
for(int i=0;i
int start=n/primeList[i];
if(n%primeList[i]!=0) start++;
int end=m/primeList[i];
for(int j=max(2,start);j<=end;j++){
isPrime[j*primeList[i]-n]=true;
}
}
}
int main() {
/* Enter your code here. Read input from STDIN. Print output to STDOUT */
int n,m;
cin>>n>>m;
sieve();
fill_up(n,m);
int ans=0;
for(int i=0;i+2<=m-n;i++){
if(isPrime[i]==false && isPrime[i+2]==false) ans++;
}
cout< return 0; }