#!/bin/bash # primes2.sh # Generating prime numbers the quick-and-easy way, #+ without resorting to fancy algorithms. CEILING=10000 # 1 to 10000 PRIME=0 E_NOTPRIME= is_prime () { local factors factors=( $(factor $1) ) # Load output of `factor` into array. if [ -z "${factors[2]}" ] # Third element of "factors" array: #+ ${factors[2]} is 2nd factor of argument. # If it is blank, then there is no 2nd factor, #+ and the argument is therefore prime. then return $PRIME # 0 else return $E_NOTPRIME # null fi } echo for n in $(seq $CEILING) do if is_prime $n then printf %5d $n fi # ^ Five positions per number suffices. done # For a higher $CEILING, adjust upward, as necessary. echo exit