#/usr/bin/perl -w ######################################################################## # # Prime number generator. # # reverse('©'), November 2001, John McNamara, jmcnamara@cpan.org # use Inline AWK; use strict; primes(0, 100); __END__ __AWK__ # This code is modified from the Mawk distribution under the GPL. function primes(start, stop) { if ( start < 2 ) start = 2 if ( stop < start ) stop = start prime[p_cnt = 1] = 3 # keep primes in prime[] # keep track of integer part of square root by adding # odd integers odd = 5 test = 5 root = 2 squares = 9 while ( test <= stop ) { if ( test >= squares ) { root++ odd += 2 squares += odd } flag = 1 for ( i = 1 ; prime[i] <= root ; i++ ) if ( test % prime[i] == 0 ) # not prime { flag = 0 ; break } if ( flag ) prime[ ++p_cnt ] = test test += 2 } prime[0] = 2 for( i = 0 ; prime[i] < start ; i++) ; for ( ; i <= p_cnt ; i++ ) print prime[i] }