Eratostenovo sito: razlika između inačica

Izbrisani sadržaj Dodani sadržaj
TXiKiBoT (razgovor | doprinosi)
Nema sažetka uređivanja
Redak 1:
[[Datoteka:Animation Sieve of Eratosth-2.gif|mini|400 px|
Na slici je demonstracija traženja prostih brojeva manjih od 120121. Napisani su svi prirodni brojevi od 2 do 120. U prvom koraku je najmanji neoznačeni broj 2, zato ga označimo crvenom bojom, a onda nježnijom nijansom crvene boje "precrtamo" ostale njegove višekratnike. Nakon toga je najmanji neoznačeni broj broj 3. Njega "zaokružimo" zelenom, a nježnijom nijansom zelene "precrtamo" višekratnike broja 3. Nakon toga je najmanji neoznačeni broj 5. Njega označimo plavom bojom, a njegove višekratnikom svjetlijom nijansom plave. Isto napravimo s brojem 7. Nakon toga je na redu broj 11. No sve njegove višektratnike smo ionako već precrtali. Zato radi jednostavnosti sve ostale proste brojeve označimo istom bojom, iako to baš nije sasvim korektno.]]
'''Eratostenovo sito''' (rešeto) je jednostavan [[algoritam]] za dobivanje svih [[prosti broj|prostih brojeva]] manjih od unaprijed izabranoga prirodnog broja. Osmislio ga je grčki matematičar, geograf i astronom [[Eratosten]].
 
Redak 8:
#zaokružimo najmanji neoznačeni broj
#precrtamo sve njegove višekratnike, koji nisu već označeni
#postupak ponavljamo postupak od 2. koraka sve dok svi brojevi nisu označeni (zaokruženi ili precrtani)
 
Postupak završi u konačno mnogo koraka, jer na početku imamo konačno mnogo brojeva, a u svakom koraku barem jedan broj označimo. Zaokruženi brojevi su [[prosti broj|prosti brojevi]]. Precrtani brojevi su [[složeni broj|složeni brojevi]].
Redak 15:
 
Sub Main()
Dim iprost As Integer
Dim alista As New List(Of Integer)
'napisiu listu dodaj sve brojeve od 2 do 1000
For i = 2 To 1000
alista.Add(i)
Next
'ponavljaj sve dok ima neoznacenih brojeva u listi
While alista.Count > 0
'napisiispiši najmanji neoznacenibroj iz liste - to je prosti broj
iprost = alista.Min
Console.WriteLine(iprost)
'iz liste izbacimo ispisani broj i sve njegove višektranike
'visketranike precrtaj
For ji = iprost To 1000 Step iprost
alista.Remove(ji) 'ako je neki vec bio precrtan nema veze
Next
End While