29 lines
475 B
Awk
29 lines
475 B
Awk
# syntax: GAWK -f SEMIPRIME.AWK
|
|
BEGIN {
|
|
main(0,100)
|
|
main(1675,1680)
|
|
exit(0)
|
|
}
|
|
function main(lo,hi, i) {
|
|
printf("%d-%d:",lo,hi)
|
|
for (i=lo; i<=hi; i++) {
|
|
if (is_semiprime(i)) {
|
|
printf(" %d",i)
|
|
}
|
|
}
|
|
printf("\n")
|
|
}
|
|
function is_semiprime(n, i,nf) {
|
|
nf = 0
|
|
for (i=2; i<=n; i++) {
|
|
while (n % i == 0) {
|
|
if (nf == 2) {
|
|
return(0)
|
|
}
|
|
nf++
|
|
n /= i
|
|
}
|
|
}
|
|
return(nf == 2)
|
|
}
|