素數距離問題

2021-07-11 01:10:06 字數 716 閱讀 6999



素數距離問題

時間限制:3000 ms  |  記憶體限制:65535 kb

難度:2

描述 現在給出你一些數,要求你寫出乙個程式,輸出這些整數相鄰最近的素數,並輸出其相距長度。如果左右有等距離長度素數,則輸出左側的值及相應距離。

如果輸入的整數本身就是素數,則輸出該素數本身,距離輸出0

輸入第一行給出測試資料組數n(0解題思路:

素數表是需要多次使用的,先計算出來,節約時間

然後每輸入乙個m,就依次檢查m,m-1,m+1,m-2,m+2,。。。。這樣的序列

x=x<0?-x:-(x+1)這一句就是用來計算這個序列的

一旦發現是素數,那就是我們需要的結果

最終**如下。

速度上應該還有優化的空間,比如用二分法查詢小於m的最大素數,素數表中

下一項就是大於等於m的最小素數,比較這兩個值和m的差,其中比較小的就是

我們需要的結果。

#include #include int main(void)	,ss2[1000]=,m,x,ps=1;

scanf("%d\n",&n);

for(i=3;i<1012;i=i+2) ;

}; while(n--) ;

for(x=0;;) ;

x=x<0?-x:-(x+1);

};}; return 0;

}

素數距離問題

時間限制 3000 ms 記憶體限制 65535 kb 難度 2 描述 現在給出你一些數,要求你寫出乙個程式,輸出這些整數相鄰最近的素數,並輸出其相距長度。如果左右有等距離長度素數,則輸出左側的值及相應距離。如果輸入的整數本身就是素數,則輸出該素數本身,距離輸出0 輸入第一行給出測試資料組數n 0輸...

素數距離問題

時間限制 3000 ms 記憶體限制 65535 kb 難度 2 描述 現在給出你一些數,要求你寫出乙個程式,輸出這些整數相鄰最近的素數,並輸出其相距長度。如果左右有等距離長度素數,則輸出左側的值及相應距離。如果輸入的整數本身就是素數,則輸出該素數本身,距離輸出0 輸入第一行給出測試資料組數n 0輸...

素數距離問題

時間限制 3000 ms 記憶體限制 65535 kb 難度 2 描述 現在給出你一些數,要求你寫出乙個程式,輸出這些整數相鄰最近的素數,並輸出其相距長度。如果左右有等距離長度素數,則輸出左側的值及相應距離。如果輸入的整數本身就是素數,則輸出該素數本身,距離輸出0 輸入第一行給出測試資料組數n 0 ...