c++ vector陣列的使用 轉)
素數判斷方法:
1、:#判斷從2到number-1的每乙個數是否可以被number整除
2、#最小的除數是2,不可能有大於 number/2 的約數的,順便取整
3、#從約數都是兩兩一對的,只需要嘗試當中一半即可;最合理的是嘗試小於其平方根的每個值,即從2到sqrt(number)
4、 如果乙個數 c 能被 (a*b) 整除,顯然, c%a 或者 c%b 餘數都是零,也就是說乙個數肯定能被它的約數的約數整除
因此,一切合數作為除數都是重複勞動,綜上,只需要判斷乙個數能否被小於它的平方根的素數整除,故建立素數的陣列
#include#include#include#includeusing namespace std;
int main(){
int num;
cin>>num;
vectorprimes; //儲存素數的容器
primes.push_back(2);
bool isprime;
for(int i=3;i<=num;i++){
isprime=true;
for(int j=0;j
PAT1007 素數對猜想
讓我們定義 dn 為 dn pn 1 pn,其中 pi 是第i個素數。顯然有 d1 1 且對於n 1有 dn 是偶數。素數對猜想 認為 存在無窮多對相鄰且差為2的素數 現給定任意正整數n 105 請計算不超過n的滿足猜想的素數對的個數。輸入格式 每個測試輸入包含1個測試用例,給出正整數n。輸出格式 ...
PAT 1007 素數對猜想
讓我們定義 dn 為 dn pn 1 pn,其中 pi 是第i個素數。顯然有 d1 1 且對於n 1有 dn 是偶數。素數對猜想 認為 存在無窮多對相鄰且差為2的素數 現給定任意正整數n 105 請計算不超過n的滿足猜想的素數對的個數。輸入格式 每個測試輸入包含1個測試用例,給出正整數n。輸出格式 ...
PAT 1007 素數對猜想
題目描述 讓我們定義 dn 為 dn pn 1 pn,其中 pi 是第i個素數。顯然有 d1 1 且對於n 1有 dn 是偶數。素數對猜想 認為 存在無窮多對相鄰且差為2的素數 現給定任意正整數n 105 請計算不超過n的滿足猜想的素數對的個數。輸入格式 每個測試輸入包含1個測試用例,給出正整數n。...