Math Pro 數學補給站's Archiver

不是因為困難所以我們才不敢,
而是因為我們不敢所以才困難。

克勞棣 發表於 2020-1-25 16:32

連續11項以上都是質數的等差數列

等差數列3499, 3709, 3919, 4129, 4339, 4549, 4759, 4969, 5179連續9項都是質數;
等差數列199, 409, 619, 829, 1039, 1249, 1459, 1669, 1879, 2089連續10項都是質數。
那麼請問有沒有連續11項以上都是質數的等差數列的[b]實例[/b]?純粹好奇。謝謝!

Lopez 發表於 2020-1-26 15:20

回復 1# 克勞棣 的帖子

利用版主的例子所給的提示:
公差 d = 3709 - 3499 = 409 - 199 = 210 = 2*3*5*7
再利用程式檢測首項10萬以內的質數: ( 2 ≤ a ≤ 100000 )

(1) d = 2*3*5*7 = 210
連續6項皆質數,首項a有87組解: a = 13, 47, 179, ..... , 98297
再從這87組解,篩選出連續11項皆質數者,結果無解.

(2) d = 2*3*5*7*11 = 2310
連續6項皆質數,首項a有158組解: a = 37, 71, 83, ..... , 99023
再從這158組解,篩選出連續11項皆質數者,結果無解.

(3) d = 2*3*5*7*11*13 = 30030
連續6項皆質數,首項a有120組解: a = 73, 619, 751, ..... , 98017
再從這120組解,篩選出連續11項皆質數者,結果有3組解: a = 23143, 53173, 75307

Ans: 若限定首項10萬以內的質數( 2 ≤ a ≤ 100000 ), 公差30030以內,
連續11項以上都是質數的等差數列有3組解:
( 首項 , 公差 ) = ( a, d ) = ( 23143, 30030 ) , ( 53173, 30030 ) ,  ( 75307, 30030 )

註解. Excel VBA 程式碼:
Sub my_prime()

Cells.ClearContents
r = 1

For n = 2 To 100000
  If is_prime(n) Then
    Cells(r, 1) = n
    r = r + 1
  End If
Next

r = 1
U = [A65536].End(xlUp).Row
M = 5
d = 2 * 3 * 5 * 7 * 11 * 13

For n = 1 To U
  a = Cells(n, 1)
  S = 0
  
  For i = 1 To M
    If is_prime(a + i * d) Then
      S = S + 1
    End If
  Next

  If S = M Then
    Cells(r, 2) = a
    r = r + 1
  End If
Next

r = 1
U = [B65536].End(xlUp).Row
M = 10

For n = 1 To U
  a = Cells(n, 2)
  S = 0
  
  For i = 1 To M
    If is_prime(a + i * d) Then
      S = S + 1
    End If
  Next

  If S = M Then
    Cells(r, 3) = a
    r = r + 1
  End If
Next

End Sub

Function is_prime(n) As Boolean
  
U = Int(n ^ 0.5)
is_prime = True
i = 2
  
Do While is_prime And i <= U
  If n Mod i = 0 Then
    is_prime = False
  End If
  
  i = i + 1
Loop

End Function

克勞棣 發表於 2020-1-26 22:18

回復 2# Lopez 的帖子

其實在下發問這個問題後,瀏覽維基百科,才偶然看到連續26項都是質數的等差數列(已用線上因數分解軟體驗證過)
P(n) = 5283234035979900n + 43142746595714191, n=0,1,2,3......,25
與這裡的同好分享。

同時感謝熱心回答且答題又快又好的Lopez大大。

頁: [1]

論壇程式使用 Discuz! Archiver   © 2001-2022 Comsenz Inc.