演算法題 查詢100以內的孿生素數的組數

2022-08-09 15:03:28 字數 1218 閱讀 7461

所謂孿生素數指的是間隔為2的相鄰素數,就像孿生兄弟。

最小的孿生素數是(3, 5)。

在100 以內的孿生素數還有 (5, 7), (11, 13), (17, 19), (29, 31), (41, 43), (59, 61) 和(71, 73),總計有 8 組。

思路:遍歷到100,先判斷當前的數字是否是素數,是則記錄下來,並且和上乙個記錄下來的素數進行比較,如果其差為2,則為一組孿生素數。

c#**

1

static

int getprimetwins(int

number)219

}20//如果i是乙個素數

21if

(isss)

2230

}31 lastnum =i;32}

33}34return

count;

35 }

lua**

1

function

getprimetwins(number)

2local count=0

3local lastnum=0

4for i=2,number,1

do5 isss=true

6for j=2,i/2,1do7

if i%j==0

then

8 isss=false

9break

10end

11end

1213

if isss==true

then

14if lastnum~=0

then

15if i-lastnum==2

then

16 count=count+1

17end

18end

19 lastnum=i

20end

21end

22return

count

23end

2425

print(getprimetwins(5)) --126

print(getprimetwins(7)) --227

print(getprimetwins(100)) --

8

python100以內孿生素數 孿生素數

問題描述 若兩個素數之差為2,則這兩個素數就是孿生素數。編寫程式找出1 100之間的所有孿生素數。我的 import math def prime n count 0 for i in range 2,int math.sqrt n 1 if n i 0 count 1 i 1 if count 1...

篩選法查詢100以內的素數

篩選法 是指從小到大篩去乙個已知素數的所有倍數。例如 根據2,我們篩選去4,6,8,98,100等數,然後根據3,我們可以篩選9,15,99等數 注意此時6 12等數早就被篩去了 由於4被篩去了,下乙個用於篩選的素數是5,以此類推,最後剩餘的就是100以內的素數。首先定義乙個int型別的陣列int ...

求100以內的素數(質數)演算法梳理

使用定理1的基本寫法 1 n 100 for i in range 2,n for j in range 2,i if i j 0 break else print i,end 這種基本寫法效率不高,有2點可以改進的地方 1 第一層迴圈的i取值時,因為偶數確定不是質數,所以排除偶數,使用range ...