素數距離問題
時間限制: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 ...