sample input
2 17sample output14 17
2,3 are closest, 7,11 are most distant.there are no adjacent primes.
找出給定範圍內,距離最遠和最近的素數。(不停超時 - -)
給的上界很大,所以全處理肯定不行。 先處理sqrt(2147483647)。
然後再在l 與 r之間篩選素數。
#include #include #include #include #include #define n 10100
typedef long long ll;
using namespace std;
int n,m;
int f[1000500];
int q[1000500];
int t[100050];
int tot;
void prim()
}}int main()
int max = -1;
int min = 1000000000;
int tmp = -1;
int maxl,maxr,minl,minr;
for(int i = 0; i <= r-l; i++)
if(tmp>=0 && i - tmp< min)
tmp = i;}}
if(max == -1)
printf("there are no adjacent primes.\n");
else
}return 0;
}
poj 2689素數篩選
這道題目我就不貼題目了,就是素數篩選題。這道題目差點讓我崩潰,自己太菜的原因,提交了很多次,總是runtime error 後來才知道,素數篩選的範圍這能是2 16,然而這道題給的範圍超出了int的上界,所以,必須要用另外一種方法來篩選,看了人家的部落格,感覺方法超好。這道題有個突破點,就是區間在1...
大區間素數篩選 POJ2689
題意 給乙個區間 l,u 1 l u 2,147,483,647 u l 1000000,求出 l,u 內距離最近和距離最遠的素數對。由於l,u都小於2 32,所以區間內的合數的最小質因子必然小於2 16,所以先篩出2 16以內的素數,用篩出來的素數去篩 l,u 內的合數。然後把 l,u 內的素數儲...
poj 2689 區間素數篩選
由於給出的l和u太大,直接打表是不可能了。但u l 1e6,u 1e9,可以先篩出 0,sqrt u 內的素數,再以此去篩 l,u 內的素數,接著求出相鄰距離最短和最遠的一對素數就行了,這步就簡單了。如下 include include include include include include...