ACWING196 質數距離

2021-10-03 18:53:24 字數 1120 閱讀 7223

給定兩個整數l和u,你需要在閉區間[l,u]內找到距離最接近的兩個相鄰質數c1和c2(即c2-c1是最小的),如果存在相同距離的其他相鄰質數對,則輸出第一對。

同時,你還需要找到距離最遠的兩個相鄰質數d1和d2(即d1-d2是最大的),如果存在相同距離的其他相鄰質數對,則輸出第一對。

輸入格式

每行輸入兩個整數l和u,其中l和u的差值不會超過1000000。

輸出格式

對於每個l和u ,輸出乙個結果,結果佔一行。

結果包括距離最近的相鄰質數對和距離最遠的相鄰質數對。(具體格式參照樣例)

如果l和u之間不存在質數對,則輸出「there are no adjacent primes.」。

資料範圍

1≤l思路:

篩出根號r

rr之前的素數,這些素數的倍數落在(l,r)裡面的就是合數,而l,r距離很小,這樣就可以統計出(l,r)裡面的素數了。

#include

#include

#include

#include

using

namespace std;

const

int maxn =

1e6+7;

int a[maxn]

,b[maxn]

;int v[maxn]

,cnt;

void

getprime()

for(

int j =

1;j <= cnt && i * a[j]

< maxn;j++)}

}int

main()

}int cnt2 =0;

for(

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

)int x1,y1;

int x2,y2;

int mi =

2147483647

,mx =0;

for(

int i =

2;i <= cnt2;i++)if

(mx < b[i]

- b[i -1]

)}if(mx ==0)

else

}}

Acwing196 質數距離

給定兩個整數l和u,你需要在閉區間 l,u 內找到距離最接近的兩個相鄰質數c1和c2 即c2 c1是最小的 如果存在相同距離的其他相鄰質數對,則輸出第一對。同時,你還需要找到距離最遠的兩個相鄰質數d1和d2 即d1 d2是最大的 如果存在相同距離的其他相鄰質數對,則輸出第一對。輸入格式 每行輸入兩個...

196 質數距離

196.質數距離 題目描述 給定兩個整數l和u,你需要在閉區間 l,u 內找到距離最接近的兩個相鄰質數c1和c2 即c2 c1是最小的 如果存在相同距離的其他相鄰質數對,則輸出第一對。同時,你還需要找到距離最遠的兩個相鄰質數d1和d2 即d1 d2是最大的 如果存在相同距離的其他相鄰質數對,則輸出第...

數論 質數距離

給定兩個整數l和u,你需要在閉區間 l,u 內找到距離最接近的兩個相鄰質數c1和c2 即c2 c1是最小的 如果存在相同距離的其他相鄰質數對,則輸出第一對。同時,你還需要找到距離最遠的兩個相鄰質數d1和d2 即d1 d2是最大的 如果存在相同距離的其他相鄰質數對,則輸出第一對。輸入格式 每行輸入兩個...