乙個數可以有多少種用連續素數之和表示

2021-10-09 04:18:38 字數 803 閱讀 5753

b站筆試涼經。

如題乙個數可以有多少種用連續素數之和表示poj 2739

//

// created by wbzhang on 2020/8/13.

//#include

#include

using namespace std;

// getprimenum,可以使用 排除法來生成小於n的質數

void

getprimebelown

(int n, vector<

int>

& primes)

}for

(int k =

2; k <= n;

++k)

}// 連續的質數之和,採用滑窗法

void

getnums

(int n,vector<

int>

& primes,

int&ans)

// 從陣列頭部開始,雙指標;記錄當前和

int i=

0,j=1;

int currsum = primes[0]

+primes[1]

;// 如果當前和小於n,則j++;如果等於,則ans++;否則i++

while

(i<=j && j<=primes.

size()

)else

if(currsumelse

}// 直到,

}int

main()

判斷乙個數是否為素數

判斷乙個數n是否是素數,只需要判斷它是否能被2到n之間的數整除就行了,若不能被整除,則說明是素數。考慮到某數大於n 2時,n不可能被該數整除,故只需遍歷2 n 2即可。更進一步,由合數定理可知,若乙個數是合數,則它的最小質因數必小於等於該數的平方根,由此可得更為高效的 如下 include incl...

判斷乙個數是否是素數

素數釋義 曾稱質數。乙個大於1的正整數,如果除了1和它本身以外,不能被其他正整數整除,就叫素數。如2,3,5,7,11,13,17 public boolean isprime int n for int i 2 i從2開始,一直到小於其自身,依次判斷能否被n整除即可,能夠整除則不是質數,否則是質數...

判斷乙個數是否是素數

一 判斷乙個數是否是素數 思想 拿比自己小的整數依次進行比較 public string issu int a return 是 演算法改進 只要小於該數字的二次根就可以了,因為大於該數字的二次根的數字也是不能整除的 public string issu int a return 是 二 實現乙個氣...