packagemainimport"fmt"funcfetchFirstPrimeNumbersOf(nint)[]int{varresult[]int// an integer n > 1ifn<=1{returnresult}// let A be an array of Boolean valuesisPrime:=make([]bool,n)// indexed by integers 2 to n,// initially all set to true.fori:=2;i<n;i++{isPrime[i]=true}// for i = 2, 3, 4, ..., not exceeding √n dofori:=2;i*i<n;i++{// I reverse the conditional check in order to make things a bit pretty// if A[i] is trueif!isPrime[i]{continue}// for j = i^2, (i^2)+i, (i^2)+2i, (i^2)+3i, ..., not exceeding n doforj:=i*i;j<n;j+=i{// A[j] := falseisPrime[j]=false}}// return all i such that A[i] is true.fori:=2;i<n;i++{if!isPrime[i]{continue}result=append(result,i)}returnresult}funcmain(){fmt.Println(fetchFirstPrimeNumbersOf(100))}
Thank you for reading!
···
Love This Content?
Any kind of supports is greatly appreciated! Kindly support me via Bitcoin, Ko-fi, Trakteer, or just continue to read another content. You can write a response via Webmention and let me know the URL via Telegraph.