素數距離 計蒜客

2021-09-10 09:34:22 字數 1668 閱讀 5168

蒜頭君請你求出區間 [l,

r]

[l,r]

[l,r

] 上距離最近的相鄰的素數對和距離最遠的相鄰的素數對。

3 ,5

3,53,

5 是相鄰的素數,2,5

2, 5

2,5 不是相鄰的素數。距離定義為 2

22 個素數的差的絕對值。比如5,7 距離為 2

輸入格式

輸入 2

22 個整數 l,r

(1≤l

≤r

≤8000000

)l, r(1 \le l \le r \le 8000000)

l,r(1≤

l≤r≤

8000

000)

輸出格式

如果 a,b

(ab)

a, b(ab)

a,b(ab

) 是距離最近的素數對,c,d

(cd)

c,d(cd)

c,d(cd

) 是距離最遠的素數對,按照如下格式輸出a,b are closest, c,d are most distant.

如果最近或者最遠有多對,輸出 a

aa 和 c​c​

c​最小的。如果沒有相鄰是素數對,輸出there are no adjacent primes.

樣例輸入

3 10

樣例輸出

3,5 are closest, 3,5 are most distant.

樣例輸入

14 17

樣例輸出

there are no adjacent primes.

解:

所求素數對必須相鄰,且要儲存兩數。這樣需儲存6個變數,距離最大最小的左右值以及他們的距離。

選找前,先用向量vec

to

rvector

vectorem

ptemp

temp

來儲存前乙個質數。

**:

#include

"iostream"

#include

"vector"

#include

"algorithm"

using

namespace std;

intmain()

for(

int i =

2; i * i <= r;

++i)}}

for(

int i=l;i<=r;i++)if

(i-temp>max)

if(i-temptemp=i;}}

if(maxl==0)

else

return0;

}

計蒜客 素數個數

用 0,1,2,3 cdots 70,1,2,3 7 這 8 8 個數組成的所有整數中,質數有多少個 每個數字必須用到且只能用一次 開始的數字是非法數字 可以發現 5 7 11 13 17 19 23 29 31 37 41 43 只要數字大於5,這些素數就會出現6 x 1或是6 x 1的周圍。所以...

計蒜客 2019計蒜之道D

題意 現在給定你乙個字串 s ss 以及乙個整數 k kk,請求出 s ss的字典序最小的長度為 k kk的子串行。資料範圍 0 s 5000000 00 s 5000 000 樣例輸入 helloworld 5樣例輸出 ellld思路 假如我們先不考慮長度為k的限制我們應當怎麼做?我們以樣例為例子...

計蒜客 解碼

蒜頭君自己發明了一種字串的編碼方式,對於只含有大小寫字母的字串,可以用數字來表示括號裡面的串連續出現的次數 數字有可能超過一位數 比如a abcd 2等價於aabcdabcd。特別地,如果數字前面沒有括號,表示緊貼數字的前面的 乙個字母 出現的次數。比如abc2表示abcc。為了降低解碼的難度,蒜頭...