reklama

Zdrojový kód na výpis prvočíselných dvojíc

V tomto príspevku si vo všeobecnosti popíšeme niečo o prvočíselných dvojiciach a o možnostiach práce s  mojou metódou získavania prvočíselných hodnôt, ktorú som po častiach neustále popisoval.

Písmo: A- | A+
Diskusia  (8)

Keď sa zamyslíte nad tým, cez aký vzorec vieme prvočísla vypočítavať, tak sú to násobky čísla 6. Z toho vyplýva, že vynásobením čísla 6 s ľubovoľným prirodzeným číslom, by nám mali teoreticky vzniknúť všetky stredy tzv. prvočíselných dvojíc.
Táto myšlienka tvorí aj základ prvého kroku vo výpočte hodnôt zapisovaných do tabuľky.

Prečo nie je možné, z každého stredu možnej prvočíselnej dvojice získať prvočíselné hodnoty, sme si hovorili v príspevku o existencii ďaľších prvočíselných dvojíc cez prvočísla 5 a 7.

SkryťVypnúť reklamu
Článok pokračuje pod video reklamou

Matematik Leonard Euler o prvočíslach povedal aj to, že sa matematici doposiaľ neúspešne snažili objaviť nejaké platiace zákonitosti v rade prvočísel, ale je možné sa domnievať, že je to záhada, do ktorej naša myseľ nikdy neprenikne.

Prečo o tom píšem ?

Chcem iba podotknúť, že tak, ako som popisoval metódu výpočtu všetkých prvočísel viackrát, tak aj v predchádzajúcom článku, máme my, ktorí túto metódu poznáme, veľkú výhodu voči ostatným. Chápeme totiž, že tým, že poznáme pochody pri tvorbe tabuľky na hľadanie prvočísel, poznáme viaceré súvislosti a dokážeme si svojim premýšľaním vyhodnotiť možnosti čiastkových výsledkov.

SkryťVypnúť reklamu
reklama

Čo tým myslím ?

Vieme si vypočítať hodnoty, podľa ktorých vypočítame a nájdeme všetky prvočísla v ľubovoľnom intervale. Dokážeme zablokovať v programe na výpis prvočísel nepotrebný algoritmus a dostaneme iba hodnoty spomínaných prvočíselných dvojíc atď.

Je tomu tak preto, lebo poznáme súvislosti a zákonitosti hľadania prvočísel, pre ktorých pochopenie je najlepším príkladom vytváraná, stále spomínaná tabuľka.

Pri Eratostenovom site nie je možné pochopiť, ako sú prvočísla rozložené v rade prirodzených čísel. Tým, že sa vyčiarkujú iba násobky čísel, nedokážu sa z programu oddeliť napríklad iba prvočíselné dvojice.

SkryťVypnúť reklamu
reklama

Ukážka programu na výpis prvočíselných dvojíc :

Program je úplne ten istý, ako pri výpise všetkých prvočísel. Zablokované sú len nepotrebné algoritmy.

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
var
i,j,k,m,r:integer;
borovec:string;
l : array[1..20000] of Integer;
n : array[1..20000] of Integer;
Fout: TextFile;
begin
AssignFile(Fout, 'D:\Prvocisla\Mapa.txt');
Rewrite(Fout);

for i:=1 to 20000 do
begin
l[i]:=0;
n[i]:=0;
end;

m := 10000;
r:=1;
i := 1;
borovec := '';


while (r<m) do
begin

r := 6 * i - 1; // Výpočet možného modrého prvočísla.
if (l[i]=0) and (n[i]=0) then // V stĺpci žiadna hodnota - prvočíslo dvojice.
borovec := borovec+IntToStr(R)+' '; 
if (l[i]>0) and (n[i]=0) then // V stĺpci je modrá - prvočíslo.
//borovec := borovec+IntToStr(R)+' ';

if (l[i]=n[i]) and (n[i]>0) then; // Ak sa rovná modré červenému a sú kladné, nevypíše nič (zložené číslo)

j:=1;
k:=1;
while (J<m) do
begin
j := k * r - i; // Zapisovanie modrých hodnôt do tabuľky
l[j] := j;
j := k * r + i; // Zapisovanie červených hodnôt do tabuľky

n[j] := j;
k := k+1;
end;

//////////////////////////////////////////////////////////////////////////////////////////////////////
r := 6 * i + 1; // Výpočet možného červeného prvočísla.
if (l[i]=0) and (n[i]=0) then // V stĺpci žiadna hodnota - prvočíslo dvojice.
borovec := borovec+IntToStr(R)+' ';

if (l[i]=0) and (n[i]>0) then // V stĺpci je červená - prvočíslo.
//borovec := borovec+IntToStr(R)+' ';
if (l[i]=n[i]) and (n[i]>0) then; // Ak sa rovná modré červenému a sú kladné, nevypíše nič (zložené číslo)

j:=1;
k:=1;
while (J<m) do
begin
j := k * r - i; // Zapisovanie modrých hodnôt do tabuľky
n[j] := j;

j := k * r + i; // Zapisovanie červených hodnôt do tabuľky
l[j] := j;
k := k+1;
end;

i := i+1; // Zvýšenie čísla riadku - nasledujúce prvočíslo


end;
ShowMessage(borovec);
Write(Fout,borovec);
CloseFile(Fout);

end;

end.

SkryťVypnúť reklamu
reklama

Aj keď je program krátky a jednoduchý, vzťahuje sa naň autorské právo tak, ako aj na celú popísanú metódu získavania prvočísel z hodnôt - podkladov pre výpočet prvočísel s následným zápisom do tabuľky.

Miroslav Židek

Miroslav Židek

Bloger 
  • Počet článkov:  187
  •  | 
  • Páči sa:  5x

...bývam na Slovensku a mám záujem o všetko, čo nadchne ducha človeka Zoznam autorových rubrík:  SúkromnéNezaradené

Prémioví blogeri

Juraj Karpiš

Juraj Karpiš

1 článok
Juraj Hipš

Juraj Hipš

12 článkov
Post Bellum SK

Post Bellum SK

74 článkov
Iveta Rall

Iveta Rall

87 článkov
Martina Hilbertová

Martina Hilbertová

49 článkov
reklama
reklama
SkryťZatvoriť reklamu