以下是我的作法:
#include<iostream>
#include<cmath>
#include<stdlib.h>
using namespace std;
main()
{//==1 not prime, !=1 prime
bool *a;
a=(bool*)malloc(20000001);
int i,j,k;
k=(int)sqrt(20000000)+1;
a[0]=a[1]=1;
for(i=2;i<k;i++)
if(!a[i])
for(j=i*i;j<20000000;j+=i)
a[j]=1;
int n,x;
while(cin >> n)
{
x=0;
for(i=3;;i+=2)
if(!a[i]&&!a[i+2])
{
x++;
if(x==n)
break;
}
cout << "(" << i << ", " << i+2 << ")\n";
}
}
我自己測時間clock()測時間,用100000也才608ms,為何會TLE呢
而且之前還有一次CE,一次RE