素數距離問題

2021-08-02 21:25:54 字數 983 閱讀 7886

時間限制:

3000 ms  |  記憶體限制:

65535 kb

難度:2 描述

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

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

輸入第一行給出測試資料組數n(0輸出

每行輸出兩個整數 a b.

其中a表示離相應測試資料最近的素數,b表示其間的距離。

樣例輸入

368

10

樣例輸出

5 1

7 111 1

從題目來看,肯定要先打乙個素數表出來,因為最多要輸入1萬個值測試,如果每個值都去計算一次,積少成多,肯定要跪,所以採用埃氏篩法打表,然後就簡單了

#include

#include

#define max 1000005

//int max=1000000;

int a[max];

//這裡一定要定義為全域性變數,不然會報錯,原因溢位

int main(void)

d=d+1;

//2的倍數找完找3的倍數,一直往後找

}while(d<=sqrt(max));

a[1]=1;      

//這裡特殊處理兩個值

a[0]=1;

scanf("%d",&z);

// 輸入組數

while(z--)

while(y)

//printf("x的值:%d\n",x);

//printf("y的值:%d\n",y);

//switch

if((x-n)>=(n-y)&&y!=0)

printf("%d %d\n",y,n-y);

else}}

return 0;}

記憶體: 4144

素數距離問題

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

素數距離問題

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

素數距離問題

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