printf( "Starting the primes test...\n" );

primes = function( start; stop ) {

    # This function finds prime numbers between START and STOP.
    
    local( prime; p_cnt; i; j; odd; test; root; squares; flag; p );
    
    prime = {};
    prime.( p_cnt = 1 ) = 3;	# a table of primes
    
    # keep track of integer part of square root by adding odd integers
    
    odd = test = 5;
    root = 2;
    squares = 9;
    
    while ( test <= stop ) {
    
	if ( test >= squares ) {
	    root += 1;
	    odd += 2;
	    squares += odd;
	}
    
	flag = 1;
	i = 1;
	while ( prime.(i) <= root ) {
	    if ( test % prime.(i) == 0 ) {	# not prime
		flag = 0;
		break;
	    }
	    i += 1;
	}
    
       if ( flag ) { prime.( p_cnt += 1 ) = test; }
    
       test += 2;
    
    }
    
    prime.(0) = 2;
    
    i = 0;
    while ( prime.(i) < start ) {
	i += 1;
    }

    p = fill( p_cnt - i + 1; 0 );
    j = 1;
    while ( i <= p_cnt ) {
	p[j] = prime.(i);
        i += 1;
        j += 1;
    }

    return p;

};

if ( norm( primes( 8; 23 ); 1 ) == 83 ) {
    printf( "...passed.\n" );
else
    printf( "...failed.\a\n" );
    exception();
}


syntax highlighted by Code2HTML, v. 0.9.1