Eratostenovo sito na výpočet prvočísel
Delphi & Pascal (česká wiki)
Kategória: Zadania Pascal
Autor: Pheo
web: pascalsource.ic.cz
Program: Eratostenovo_sito.pas
Súbor exe: Eratostenovo_sito.exe
Autor: Pheo
web: pascalsource.ic.cz
Program: Eratostenovo_sito.pas
Súbor exe: Eratostenovo_sito.exe
Program na výpis prvočísel z intervalu medzi 1 a n. Napíše prvé prvočíslo 2 a vyčiarkne jeho všetky násobky, vypíše prvé nevyčiarknuté a vyčiarkne jeho násobky. Podobne postupuje ďalej, čo ostane sú prvočísla. Použije teda eratostenovo sito.
{ ERATOSTENOVO_SITO.PAS Copyright (c) Pheo } { Program na vypis prvocisel z intervalu medzi 1 a n. } { Napise prve prvocislo 2 a vyciarkne jeho vsetky nasobky vypise } { prve nevyciarknute a vyciarkne jeho nasobky podobne postupuje } { dalej, co ostane su prvocisla. Pouzije eratostenovo sito. } { } { Datum:17.05.2000 http://www.trsek.com } program eratostenovo_sito; {napise prve prvocislo 2 a vyciarkne jeho vsetky nasobky} uses crt; {vypise prve nevyciarknute a vyciarkne jeho nasobky} const max=500; {podobne postupuje dalej, co ostane su prvocisla} VAR N,I,J,P:word; a:array [2..max] of word; begin clrscr; gotoxy(5,5); writeln('zvol hornu hranicu intervalu (1,n>'); gotoxy(5,7); readln(n); gotoxy(5,10); for i:=2 to n do a[i]:=i; p:=2; while p<= sqrt(n) do begin for i:=p+1 to n do if a[i] mod p = 0 then a[i]:=0; repeat p:=p+1 until p<>0; {dalsie nenulove cislo} end; write ('Prvocisla: '); for i:=2 to n do if a[i]<>0 then write(a[i],','); repeat until keypressed; end.