- Code: Select all
#include<iostream>
#include<stdio.h>
#include<vector>
#include<math.h>
using namespace std;
const int MAX=18409202;
main()
{
vector<bool> primes(MAX,true);
vector<int> pairs;
int i;
primes[0]=primes[1]=false;
/*filter out even nos*/
for(i=4;i<=MAX;i+=2)
primes[i]=false;
/*Sieve method*/
for(i=3;i<=4290;i+=2) {
if(!primes[i])
continue;
int j;
for(j=i+i;j<=MAX;j+=i)
primes[j]=false;
}
/*Precompute prime pairs..except (3,5) every other pair of form (6k-1,6k+1) */
int j;
pairs.push_back(3);
for(i=1,j=6;i<100000;j+=6) {
if(primes[j-1] && primes[j+1]) {
pairs.push_back(j-1);
i++;
}
}
/*Take input and print*/
int S;
cin >> S;
while(!cin.eof()) {
cout << "(" << pairs[S-1] << ", " << pairs[S-1]+2 << ")\n";
cin >> S;
}
}
Plz tell me hw i can optimize it...


