35 lines
525 B
Bash
35 lines
525 B
Bash
#!/bin/ksh
|
|
|
|
# Semiprime - As translated from C
|
|
|
|
# # Variables:
|
|
#
|
|
|
|
# # Functions:
|
|
#
|
|
# Function _issemiprime(p2) - return 1 if p2 semiprime, 0 if not
|
|
#
|
|
function _issemiprime {
|
|
typeset _p2 ; integer _p2=$1
|
|
typeset _p _f ; integer _p _f=0
|
|
|
|
for ((_p=2; (_f<2 && _p*_p<=_p2); _p++)); do
|
|
while (( _p2 % _p == 0 )); do
|
|
(( _p2 /= _p ))
|
|
(( _f++ ))
|
|
done
|
|
done
|
|
|
|
return $(( _f + (_p2 > 1) == 2 ))
|
|
}
|
|
|
|
######
|
|
# main #
|
|
######
|
|
|
|
integer i
|
|
for ((i=2; i<100; i++)); do
|
|
_issemiprime ${i}
|
|
(( $? )) && printf " %d" ${i}
|
|
done
|
|
echo
|