login  home  contents  what's new  discussion  bug reports     help  links  subscribe  changes  refresh  edit

Edit detail for SandBox Aldor Sieve revision 6 of 9

1 2 3 4 5 6 7 8 9
Editor: alfredo
Time: 2008/04/25 01:43:40 GMT-7
Note: Fix formatting

removed:
-From BillPage Sun Mar 4 19:38:24 -0600 2007
-From: Bill Page
-Date: Sun, 04 Mar 2007 19:38:24 -0600
-Subject: four is not prime
-Message-ID: <20070304193824-0600@wiki.axiom-developer.org>
-
-\begin{aldor}
-#include "axiom.as"
-macro Z == Integer;
-
-main(): Boolean == {
-	import from Z;
-	b: Boolean := prime? 4;
-	return b;
-}
-\end{aldor}
-
-\begin{axiom}
-main()
-\end{axiom}
-

From section 1.2 of Aldor Users Guide

sieve.as
A prime number sieve to count primes <= n.

aldor
# include "axiom.as" import from Boolean, Integer, NonNegativeInteger; sieve(n: Integer): Integer == { isprime: OneDimensionalArray Boolean := new(n::NonNegativeInteger, true); np:Integer := 0; for p in 2..n | isprime p repeat { np := np + 1; for i in (p+p)..n by p repeat isprime i := false; } np }
aldor
   Compiling FriCAS source code from file 
      /var/zope2/var/LatexWiki/8473420842059482192-25px001.as using 
      AXIOM-XL compiler and options 
-O -Fasy -Fao -Flsp -laxiom -Mno-AXL_W_WillObsolete -DAxiom -Y $AXIOM/algebra
      Use the system command )set compiler args to change these 
      options.
#1 (Warning) Deprecated message prefix: use `ALDOR_' instead of `_AXL'
   Compiling Lisp source code from file 
      ./8473420842059482192-25px001.lsp
   Issuing )library command for 8473420842059482192-25px001
   Reading /var/zope2/var/LatexWiki/8473420842059482192-25px001.asy

axiom
)lisp (si::allocate-contiguous-pages 1500 t) Value = T )lisp (si::allocate 'sfun 50 t) Value = T for i in 1..4 repeat n := 10^i outputList ["There are ", sieve n, " primes <= ", n] There are 4 primes <= 10 There are 25 primes <= 100 There are 168 primes <= 1000 There are 1229 primes <= 10000
Type: Void

To run this program on your own computer you need linux and Axiom+Aldor from AxiomBinaries?.

  1. Save the program source as a file called 'sieve.as':
      $ vi sieve.as
    
  2. Start Axiom:
      $ AXIOMsys
    
  3. Compile the program:
      (1) -> )compile sieve.as
    
  4. Run it:
        for i in 1..6 repeat ( _
            n := 10^i; _
            outputList ["There are ", sieve n, " primes <= ", n] _
        )