ඇල්ගොරිතම

විකිපීඩියා, නිදහස් විශ්වකෝෂය වෙතින්
වෙත පනින්න: සංචලනය, සොයන්න

1. 2 සිට ප්‍රාථමිකතාව සඳහා ඔබට පරීකෂා කිරීමට අවශ්‍ය විශාලම සංඛ්‍යාව දක්වා සංඛ්‍යා ලයිස්තුවක් ලියන්න. එම ලයිස්තුව A ලෙස හදුන්වමු. (මෙය පින්තූරයේ වම් පස වු කොටු ලයිස්තුවයි)

2. වෙනත් සොයා ගත් ප්‍රාථමික සංඛ්‍යා සඳහා වු ලයිස්තුවක ප්‍රථම සංඛ්‍යාව වන 2 ලියන්න. මෙම ලයිස්තුව B ලෙස හදුන්වමු. (මෙය පින්තූරයේ දකුණු පස වු ලයිස්තුවයි)
3.      2 හි සියලු ගුණාකාර A ලයිස්තුවෙන් කපා හරින්න.
4.      ලයිස්තුවේ ඉතිරි ප්‍රථම අංකය ප්‍රාථමික අංකයකි. එම අංකය  B ලයිස්තුව ලියන්න.
5.      එම අංකය හා එහි ගුණාකාර සියල්ල A ලයිස්තුවෙන් කපා හරින්න. ගුණාකාර කපාහැරීම අදාල සංඛ්‍ය‍‍ාවේ වර්ගයෙන් ආරම්භ කළ හැක. මන්දයත් ඊට පහලින් ඇති ගුණාකාර පෙර පියවරේදී දැනටමත් කපා හැර ඇත.
6.      A ලයිස්තුවේ කිසිදු අංකයක් ඉතිරි නොවන තෙක් පියවර අංක 4 හා 5 නැවත නැවතත් සිදු කරන්න. ඔබ A ලයිස්තුවේ විශාලම සංඛ්‍යාවේ වර්ග මූලයට වඩා වැඩි සංඛ්‍යාවකට ලගා වු විට A ලයිස්තුවේ ඉතිරි සියලු සංඛ්‍යා ප්‍රාථමික සංඛ්‍යා වන බවද අවධානයට ගන්න.

පහත දැක්වෙන්නේ ඇල්ගොරිතම සදහා වු ව්‍යාජ කේතයක

// arbitrary search limit limit ← 1.000.000

// assume all numbers are prime at first

is_prime(i) ← true, i ∈ [2, limit]

for n in [2, √limit]:

   if is_prime(n):
       // eliminate multiples of each prime,
       // starting with its square
       is_prime(i) ← false, i ∈ {n², n²+n, n²+2n, ..., limit}

for n in [2, limit]:

   if is_prime(n): print n


References[සංස්කරණය]

http://en.wikipedia.org/wiki/Sieve_of_Eratosthenes#Algorithm

"http://si.wikipedia.org/w/index.php?title=ඇල්ගොරිතම&oldid=249233" වෙතින් සම්ප්‍රවේශනය කෙරිණි