mirror of https://github.com/tLDP/LDP
38 lines
828 B
Bash
38 lines
828 B
Bash
#!/bin/bash
|
|
# factr.sh: Factor a number
|
|
|
|
MIN=2 # Will not work for number smaller than this.
|
|
E_NOARGS=85
|
|
E_TOOSMALL=86
|
|
|
|
if [ -z $1 ]
|
|
then
|
|
echo "Usage: $0 number"
|
|
exit $E_NOARGS
|
|
fi
|
|
|
|
if [ "$1" -lt "$MIN" ]
|
|
then
|
|
echo "Number to factor must be $MIN or greater."
|
|
exit $E_TOOSMALL
|
|
fi
|
|
|
|
# Exercise: Add type checking (to reject non-integer arg).
|
|
|
|
echo "Factors of $1:"
|
|
# -------------------------------------------------------
|
|
echo "$1[p]s2[lip/dli%0=1dvsr]s12sid2%0=13sidvsr[dli%0=\
|
|
1lrli2+dsi!>.]ds.xd1<2" | dc
|
|
# -------------------------------------------------------
|
|
# Above code written by Michel Charpentier <charpov@cs.unh.edu>
|
|
# (as a one-liner, here broken into two lines for display purposes).
|
|
# Used in ABS Guide with permission (thanks!).
|
|
|
|
exit
|
|
|
|
# $ sh factr.sh 270138
|
|
# 2
|
|
# 3
|
|
# 11
|
|
# 4093
|