logowanie

matematyka » forum » matematyka » temat

Wielomiany generujace liczby pierwsze

ostatnie wiadomoÅ›ci  |  regulamin  |  latex

AutorWiadomość

nk_1
postów: 14
2017-11-20 11:48:30

Analizowałem sposób (podobny do sita Eratostenesa ale szybszy) na wyznaczenie liczb pierwszych tzw. Sito Małgorzaty opisany pod linkiem: https://1drv.ms/b/s!AsqwpKK-51whhhzzvgOxdib8Y_rW. Doszedłem do wniosku, że jeżeli w ciagu wyznaczonym przez sito Małgorzaty będzie bardzo wiele kolejnych liczb złożonych to w określonej odległości od tego miejsca pojawią się liczby pierwsze w stałych odległościach. Długość ciągu kolejnych licz pierwszych może być dużo większa niż co obecnie pisze się w Internecie o wielomianach generujących liczby pierwsze.

Poniżej załączam makro w Excelu wyznaczając liczby pierwsze wyżej wymienioną metodą.
Sub sito()
Dim j, i As Long
Dim a, b As Long
Dim t As Boolean
Dim f As Boolean
Dim x_max As Long
Dim x As Long
Dim yp As Long
Dim pk As Integer
Dim pky As Integer
Dim pk_max As Integer
Dim pk_min As Integer
Range(\"B:Z\").ClearContents
\'ilosc danych w kadej kolumnie np. 1040000
x_max = Range(\"A1\").Text
\'ilosc kolumn - wartosc max 25
pk_max = Range(\"A2\").Text
\' zaczynamy od 2 kolumny
pk = 2
pky = 2
pk_min = 2
pk_max = pk_max + 1
t = True
\' wartsc pocztkowa dla iteracji
yp = 1
i = 0
Do
i = i + 1
\' wartsc pocztkowa x dla danej iteracji i
x = yp
\'wyliczenie wartosci a i b
a = 1 + 2 * i
If t Then
b = 4 * i + 3
Else
b = 4 * i + 1
End If
\' ustawienie kolejnoci a czy b - t dla iteracji i , f dla poditeracji
f = t
If Cells(i, pk).Value <> 1 Then
If f Then
x = x + b
yp = x + a
Else
x = x + a
yp = x + b
End If
\'zaznaczenie elementu dla danej iteracji
For j = pk_min To pk_max
Do While x < x_max
Cells(x, j) = 1
If f Then
x = x + a
Else
x = x + b
End If
f = Not (f)
Loop
x = x - x_max + 1
Next j
Else
yp = yp + a + b
End If
If Not (yp < x_max) Then
yp = yp - x_max + 1
pky = pky + 1
End If
pk_min = pky
t = Not (t)
Loop Until (pky > pk_max)
End Sub

Wiadomość była modyfikowana 2017-11-26 16:36:31 przez nk_1
strony: 1

Prawo do pisania przysługuje tylko zalogowanym użytkownikom. Zaloguj się lub zarejestruj

© 2019 Mariusz ¦liwiñski      o serwisie | kontakt   drukuj