給定兩個整數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輸入樣例:
2 17
14 17
輸出樣例:
2,3 are closest, 7,11 are most distant.
there are no adjacent primes.
#include
#include
#include
using namespace std;
const
int n =
1000010
, m =
50010
;int primes[n]
, cnt;
bool st[n]
;void
get_primes
(int n)
//線性篩法 求1-n所有質數}}
intmain()
cnt =0;
for(
int i =
0; i <= r - l; i ++)if
(!st[i]
&& i + l >1)
primes[cnt ++
]= i + l;
// for(int i = 0; i < cnt; i++) cout << primes[i] << ' ';
// cout << endl;
if(cnt <2)
puts
("there are no adjacent primes.");
else
//找相鄰質數最小值
printf
("%d,%d are closest, %d,%d are most distant.\n"
, primes[minp]
, primes[minp +1]
, primes[maxp]
, primes[maxp +1]
);}}
return0;
}
給定整數 n ,試把階乘 n! 分解質因數,按照算術基本定理的形式輸出分解結果中的 pi 和 ci即可。
輸入格式
乙個整數n。
輸出格式
n! 分解質因數後的結果,共若干行,每行一對pi,ci,表示含有pcii項。按照pi從小到大的順序輸出。
資料範圍
1≤n≤10^6
輸入樣例:
5輸出樣例:
2 33 1
5 1樣例解釋
5!=120=2^335
#include
using namespace std;
const
int n =
1000010
;int primes[n]
, cnt;
bool st[n]
;void
get_primes
(int n)}}
intmain()
return0;
}
《演算法競賽高階指南》 防曬
有c頭奶牛進行日光浴,第i頭奶牛需要minspf i 到maxspf i 單位強度之間的陽光。每頭奶牛在日光浴前必須塗防曬霜,防曬霜有l種,塗上第i種之後,身體接收到的陽光強度就會穩定為spf i 第i種防曬霜有cover i 瓶。求最多可以滿足多少頭奶牛進行日光浴。輸入格式 第一行輸入整數c和l。...
《演算法競賽高階指南》蚯蚓
蛐蛐國最近蚯蚓成災了!隔壁跳蚤國的跳蚤也拿蚯蚓們沒辦法,蛐蛐國王只好去請神刀手來幫他們消滅蚯蚓。蛐蛐國裡現在共有 n 只蚯蚓,第 i 只蚯蚓的長度為 ai 所有蚯蚓的長度都是非負整數,即可能存在長度為0的蚯蚓。每一秒,神刀手會在所有的蚯蚓中,準確地找到最長的那乙隻,將其切成兩段。若有多隻最長的,則任...
演算法競賽高階指南筆記
原碼 原碼就是符號位加上真值的絕對值,即用第一位表示符號,其餘位表示值.比如如果是8位二進位制 其中,第一位為1是負數 1 0000 0001 原 1 1000 0001 原 因此,8位二進位制數的取值範圍 127,127 補碼正數的補碼是其本身 負數的補碼是在其原碼的基礎上,符號位不變,其餘各位取...