#include <stdio.h>
#include <stdlib.h>
#include <math.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main(int argc, char *argv[]) {
long long int x[500000]={0},a,b,c,d,e,f,i,j;
long long int y[100000]={0};
x[1]=2;
x[2]=3;
x[3]=5;
x[4]=7;
int k=4;
for(i=9;i<20000000;i=i+2)
{a=1;
for(j=1;j<=k;j++)
{if(i%x[j]==0)
{a=0;
break;
}
if(x[j]*x[j]>i)
break;
}
if(a==1)
{k++;
x[k]=i;
}
}
b=0;
for(i=0;i<=10001;i++)
y[i]=0;
for(i=1;i<=k;i++)
{
for(j=i+1;j<=k;)
{if(x[j]-x[i]==4)
{b++;
y[b]=x[i];
break;
}
else if(x[j]-x[i]>4)
break;
else;
j=j+1;
}
if(b>10000)
break;
}
while(scanf("%lld",&a)!=EOF)
{printf("(%lld, %lld)\n",y[a],y[a]+4);
}
return 0;
}
是陣列宣告太小
但還是TLE
請問大大
算質數要如何加速?
光是算到20000000就會TLE了
是陣列宣告太小
但還是TLE
請問大大
算質數要如何加速?
光是算到20000000就會TLE了
把array放到main外面去
放在函数里面可能会把stack爆掉所以RE
是陣列宣告太小
但還是TLE
請問大大
算質數要如何加速?
光是算到20000000就會TLE了
把array放到main外面去
放在函数里面可能会把stack爆掉所以RE
但還是TLE
如何加速
是陣列宣告太小
但還是TLE
請問大大
算質數要如何加速?
光是算到20000000就會TLE了
把array放到main外面去
放在函数里面可能会把stack爆掉所以RE
但還是TLE
如何加速
我的做法是,先用eratosthenes筛法找20000001以下所有质数
然后扫一遍得到的质数表,检查每个临近对的差是不是2,是就缓存起来
之后就是O(1) 的查找了
是陣列宣告太小
但還是TLE
請問大大
算質數要如何加速?
光是算到20000000就會TLE了
把array放到main外面去
放在函数里面可能会把stack爆掉所以RE
但還是TLE
如何加速
我的做法是,先用eratosthenes筛法找20000001以下所有质数
然后扫一遍得到的质数表,检查每个临近对的差是不是2,是就缓存起来
之后就是O(1) 的查找了