Eratosthenes Sieve & Swan
module primes
fun int n | Eratosthenes // subroutine declaration
int primes [ n ], 1 | l int // assignment operator
0 | i int, 3 | index_square int // proc sift
int first, last, factor // proc mark sieve
for 0 | k int, k < n, k++ // fill with true
true | primes[k]
while index_square < n //proc sift
if primes[i] //proc mark sieve
0 + index_square | first
0 + n | last
i + i + 3 | factor
false | primes[first]
while last - first > factor
first + factor | first
false | primes[first]
// proc mark sieve
i + 1 | i
2 * i * (i + 3) + 3 | index_square
// proc sift
' 2' | out // print out
for 0 | i int, i < n, i++ // print out
if primes[i]
if 2 * i + 3 > n
break
' ' 2 * i + 3 | out
l + 1 | l
if l % 10 == 0
'\n' | out
// if
// print out
'\n number : ' l | out
// erato fun
main
1000 | Eratosthenes // subroutine call
Comments
Post a Comment