What is the smallest positive integer k such that k+1, 2k+1, 3k+1, 4k+1 are all primes?
DefDbl A-Z
Dim crlf$
Function mform$(x, t$)
a$ = Format$(x, t$)
If Len(a$) < Len(t$) Then a$ = Space$(Len(t$) - Len(a$)) & a$
mform$ = a$
End Function
Private Sub Form_Load()
Text1.Text = ""
crlf$ = Chr(13) + Chr(10)
Form1.Visible = True
For k = 2 To 20000
good = 1
For t = k + 1 To 4 * k + 1 Step k
If prmdiv(t) < t Then good = 0: Exit For
Next
If good Then Text1.Text = Text1.Text & k & crlf
DoEvents
Next
Text1.Text = Text1.Text & " done"
End Sub
Function prmdiv(num)
Dim n, dv, q
If num = 1 Then prmdiv = 1: Exit Function
n = Abs(num): If n > 0 Then limit = Sqr(n) Else limit = 0
If limit <> Int(limit) Then limit = Int(limit + 1)
dv = 2: GoSub DivideIt
dv = 3: GoSub DivideIt
dv = 5: GoSub DivideIt
dv = 7
Do Until dv > limit
GoSub DivideIt: dv = dv + 4 '11
GoSub DivideIt: dv = dv + 2 '13
GoSub DivideIt: dv = dv + 4 '17
GoSub DivideIt: dv = dv + 2 '19
GoSub DivideIt: dv = dv + 4 '23
GoSub DivideIt: dv = dv + 6 '29
GoSub DivideIt: dv = dv + 2 '31
GoSub DivideIt: dv = dv + 6 '37
Loop
If n > 1 Then prmdiv = n
Exit Function
DivideIt:
Do
q = Int(n / dv)
If q * dv = n And n > 0 Then
prmdiv = dv: Exit Function
Else
Exit Do
End If
Loop
Return
End Function
Finds
330
1530
3060
4260
4950
6840
10830
15390
18120
all work as values of k,
So the smallest such k is 330.
A slight modification goes out to 5k+1, etc.:
to 5k+1 10830
to 6k+1 25410
to 7k+1 512820
to 8k+1 512820
That is, the smallest to include 7k+1 also goes as far as 8k+1.
|
Posted by Charlie
on 2019-04-25 14:50:25 |