mirror of https://github.com/tLDP/LDP
40 lines
751 B
Bash
40 lines
751 B
Bash
#!/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
|